学习c/c++技术小结
2011-02-24 18:25
260 查看
伪指令#pragma pack(n) 这个指令用于告诉编译器,程序里面的结构体按到n个字节对齐。
#pragma pack()取消自定义的字节对齐。
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
#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
相关文章推荐
- Dev-C++下基本数据类型学习小结
- Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
- 关注C++细节——STL中map学习小结
- RAID技术学习小结
- 【C++学习】构造函数、拷贝构造函数、析构函数小结
- 【C/C++学习笔记】结构体的位域操作小结
- [阶段小结]非技术人员的编程学习折腾记
- C++后台开发核心技术实践学习日志2017/5/11
- C++学习随笔之八:抽象与建模----类的设计技术
- 【技术门诊128期】从C/C++学习谈编程能力的培养与提高!
- C++学习 STL之set使用方法小结
- 一些工作学习技术小结
- [置顶] 安全漏洞--C/C++代码安全漏洞审计技术学习分享
- 学习com后技术小结
- 2010年12月份Web技术学习小结
- js学习小结(八)2014.5.6(DOM节点,DOM操作技术)
- Android 学习笔记——利用JNI技术在Android中调用、调试C++代码
- C++学习小结之数据类型及转换方式
- c++学习笔记 --5.11 小结
- C++学习小结