编译基础

1、基本宏含义:

__LINE__被编译文件行号%dide


__FILE__被编译文件名%s优化


__DATE__编译的日期%sspa


__TIME__编译的时间%s字符串


__STDC__判断当前使用的编译器是否符合C标准:不符合 0 符合 1编译器

二、基本术语:

BSSBlock Started by Symbol 由符号开始的块(未初始化的区域)it

三、gcc选项:

-c编译,生成 .oobj文件编译

-o自定义目标名class

-std = c89 -std = c99gcc

-pedantic根据C标准产生警告消息gc

-Wall编译器检测到可能的错误时生成警告消息

-O0不优化

-O1缺省优化

-O3最高优化

-E仅预处理

-S产生汇编


例如:gcc xxx.c -lm

四、## #

##是链接符号,链接两个宏#define ABC(xyz)MY_##xyz

# 是把名字替换成字符串#define ABC(xyz)#xyz

#definePRINT(n)printf(#n" = %d\n",n);

即:PRINT(i/j) -> printf("i/j = %d\n",i/j);

五、结构体对齐方式

#pragma pack(push, n)

#pragma pack(pop)

相关文章
相关标签/搜索