编译基础

1、基本宏含义:

__LINE__被编译文件行号%d


__FILE__被编译文件名%s


__DATE__编译的日期%s


__TIME__编译的时间%s


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

2、基本术语:

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

3、gcc选项:

-c编译,生成 .oobj文件

-o自定义目标名

-std = c89 -std = c99

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

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

-O0不优化

-O1缺省优化

-O3最高优化

-E仅预处理

-S产生汇编


例如:gcc xxx.c -lm

4、## #

##是连接符号,连接两个宏#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);

5、结构体对齐方式

#pragma pack(push, n)

#pragma pack(pop)

本文出自 “BaggerSky” 博客,谢绝转载!

你可能感兴趣的:(c,编译基础)