【发布时间】:2013-08-22 05:45:56
【问题描述】:
我是 C 编程新手。作为网络安全课程的一部分,我必须设计一个 SSL 握手模拟。我在网上找到了一个示例代码,但是我不明白代码的某些部分。您能帮我解决以下问题吗:
(char) 0 是做什么的?? ( send_data 定义为char send_data[1024]; )
send_data[0] = (char) 0; //Packet Type = hello
send_data[1] = (char) 3; //Version
编辑+跟进
伙计们,我知道什么是类型转换。
我明白什么是强制转换但我发布的代码什么也没做。即使整数 0 被转换为字符,它也没有做任何事情,因为当你打印它时 - 它是一个空白 - 没有值。
例如:
#include <stdio.h>
#include <stdlib.h>
int main(){
char test;
int num;
num = 1;
test = (char) num; // this does nothing
printf("num = %d , %c\n",num,num);
printf("test = %d , %c\n",test,test);
// Isn't this the correct way to do it ?? :
num = 3;
test = '3'; // now this is a character 3
printf("num = %d , %c\n",num,num);
printf("test = %d , %c\n",test,test);
return 0;
}
上面代码的输出是:
num = 1 ,
test = 1 ,
num = 3 ,
test = 51 , 3
那么为什么要这样做呢?这不是正确的方法吗:- send_data[0] = '0';发送数据[1] = '3';
【问题讨论】:
-
听说过选角吗?
-
请阅读 K&R 的“C语言编程”一书
标签: c sockets networking ssl network-programming