发布时间:2013-10-16 15:34:20
如果直接操作结构体成员是不会取到不期望的值 但是对于要求连续数据格式的时候需要考虑对齐的问题 例如通讯中的数据帧格式等 ,如 ip数据包等#pragma pack(1) struct tagStruct { ... } t; #pragma pack() 的方式来强制连续存放 其中前面 pack(1) 是指对齐边界为 11。几个结构体例子:struct{short a1;short a2;short a3;}A;struct{long a1;short a2;}B;sizeof( ......【阅读全文】
发布时间:2013-10-16 15:32:00
看一些程序的时候老是有“#ifdef __cplusplusextern "C" {#endif”的定义,搞搞清楚是怎么回事:Microsoft-Specific Predefined Macros__cplusplus Defined for C++ programs only. 意思是说,如果是C++程序,就使用extern "C"{而这个东东,是指在下面的函数不使用的C++的名字修饰,而是用C的The following code shows a header file which can be used by C and C++client applications:// MyCFu......【阅读全文】
发布时间:2013-10-16 15:30:11
函数名与返回值类型在语义上不可冲突。违反这条规则的典型代表就是C 语言标准库函数getchar 。几乎没有一部名著没有提到getchar 函数,因为它实在太经典,太容易让人犯错误了。所以,每一个有经验的作者都会拿这个例子来警示他的读者,我这里也是如此:char c;c=getchar();if(EOF == c){…}按照getchar 名字的意.........【阅读全文】
发布时间:2013-10-16 15:29:15
原文地址:三年经验的C,超过两题答不出请离开软件界 作者:file31.double free是什么问题?申请地址与释放地址不一致会有什么问题?2.main函数最多有几个参数?各是什么作用?3.crt是什么?编译器是怎么样连接crt的(描述cl或者gcc方式)4.c语言程序的入口函数是哪个.........【阅读全文】