(1) 
void * __cdecl malloc(size_t size)
void __cdecl free(void *ptr)
这个_cdecl是什么意思?
加了它有什么好处?
(2)
#pragma pack(push, 1)


#pragma pack(pop)
这个是什么意思?
加了它有什么好处?(3)
#ifdef __GOOD__

#endif这个GOOD好像不是当前源文件的名字,在整个源程序中也没有这个文件名。
#ifdef __GOOD__ 中,这种定义法是不是还有其它意思? 

解决方案 »

  1.   

    (1)(2)都不太好回答,说简单等于没说,说复杂可以写篇文章了 汗
    (3)为了防止代码多次编译,通常的用法应该是这样的
    ***.h#ifndef __GOOD_
    #define __GOOD_
    //你的代码 AAA
    #endif
    这样的话万一***.h被多个cpp文件include,你的代码 AAA,就不会被多次编译,避免类似
    多次定义啊等等的错误
      

  2.   

    (1)(2)都可以从MSDN中查到,建议先看看资料再说ifndef这套东西是条件编译,是一个给编译器看的IF语句
    不仅仅针对头文件,针对一些不同编译器的版本或者想跨平台的时候都会用到
      

  3.   

    (2)如果你定义了一个结构如
    struct
    {
     char t;
     int m;
    }z;
    按字节来说应该是5个字节,但实际上sizeof(z)不是5,大概是8吧
    因为他按照一定的规则自动补齐。pack就是定义补齐规则的