1.编写程序hello.c。
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("hello world\n");
return 0;
}
2.分步编译hello.c
linux@linux:~/hqyjC基础$ gcc -E hello.c -o hello.i
linux@linux:~/hqyjC基础$ gcc -S hello.i -o hello.s
linux@linux:~/hqyjC基础$ gcc -c hello.s -o hello.o
linux@linux:~/hqyjC基础$ gcc hello.o -o hello
linux@linux:~/hqyjC基础$ ./hello
hello world
3.思维导图
4.总结宏定义注意事项
1. 宏值可以是任意 C 代码,在定义宏的时候,并不会检查语法,只有在宏替换的时候才会查语
2. 宏值如果是表达式,最好⽤括号括起来,因为在宏替换的时候可能会出现运算符优先级的问题
3. 宏值⾥如果使⽤了变量名,⼀定在使⽤的时候,保证该变量已定义
4. 宏名不是变量, 不能通过赋值符号去改变值
5. 宏可以定在任意的地⽅(⽅法内和⽅法外),如果定义在⽅法内,出了⼤括号也可以使⽤,因为它不是变量。 宏从定义开始到⽂件结束,都是可以使⽤。可以使⽤#undef typeLength来使宏失效
6. 不要和 typedef 搞混,给类型起别名和预处理指令的宏定义没关系。
7. 带参数的宏,不需要写形参的类型。
8. 宏值⾥⾯有换⾏的话,就代表这个宏的定义结束了
5.十进制87转二进制,八进制,十六进制。-115的原码,反码补码。
十进制 二进制 八进制 十六进制
87 0101 0111 127 57
原码 反码 补码
1111 0011 1000 1100 1000 1101