您的位置:首页 > 编程语言 > C语言/C++

学习c/c++技术小结

2011-02-24 18:25 260 查看
伪指令#pragma pack(n) 这个指令用于告诉编译器,程序里面的结构体按到n个字节对齐。

#pragma pack()取消自定义的字节对齐。

struct stA  =>将按到结构体变量中,占最大字节来算,int占4个字节,所
{             以sizeof(stA) = 8;
int  a;     注意:如果#pragma pack(n),n超过了结构体中,最大的
char b;          字节,则按这个最大的字节为准。
};


class和struct的比较:

stA s = {1,'h'};合法,但是如果是class的话,不能这么做。

extern "c" 解析:

extern表示函数和变量的作用范围,表示可以在本模块或者其它模块使用。与它相反的是static表示只能在本模块里使用。

extern int a;表示声明一个变量,并没有为这个变量分配内存。

如果要在c++环境下调用c编译的函数,需要在c++头文件中引用c的头文件。

extern "c"

{

#include "cHeader.h" ,这样的话,在c++需找c的函数时,就是按照c编译器编译的形式,就可以找到,如果没有这样做的话,就是 按照 c++编译器规定的形式调用,例如调用这个函数foo(int,int),在c++中就是寻找foo_int_int,c 中就是寻找foo()。

} 注意:在c头文件中,对其外部提供函数,加上extern
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: