C语言性能优化与基础知识
性能优化篇
1. 代码中使用代码块可以及时回收不再使用的变量,提高性能。
变量的作用域从定义变量的那一行代码开始,一直到所在代码块结束。
2. 带参数的宏定义效率比函数高。简单的运算可以用宏定义来完成。
3. 当一个函数被调用很多次,而且函数中某个变量值是不变的,
应该将此变量声明为static(只会分配一次内存),可以提高程序效率。
基础知识篇
1. 宏定义只是简单的字符替换
#define MX 100+200 int a=MX*10 (a=2100)
2. 逗号运算符,连接数个小语句为一条语句,运算顺序从左到右
printf(“nihao”) , printf(“hello”);
3. 进制与数字表示
二进制 0b 八进制 0 十六进制 0x
4. for (语句1 ; 条件 ; 语句2){ 循环体 }
for开始会执行一次语句1(整个for循环只会执行一次)
5. while( 判断语句 )
条件成立,判断语句会执行多次。
6. printf输出:
%d int
%f float/double
%ld lang
%lld long long
%c char
%s 字符串
%zd unsigned long
7. gcc编译器用法:
1) 仅将原始码编译成目标文件 gcc -c hello.c
2) 在编译的时候,依据作业环境给予优化执行速度 gcc -O hello.c –c
3) 在进行binaryfile制作时,将连接的函数库与相关路径填入
4) gcc sin.c -lm -L/usr/lib -I/usr/include
-lm指的是libm.so或libm.a (小写L)
-L后面接的路径是上面函数库的搜寻目标
-I后面接的是原始码内的include档案所在目录 (大写i)
5) 将编译结果输出成某个特定档案名 gcc -o hello hello.c
6) 在编译的时候输出较多的信息说明 gcc -o hello hello.c –Wall
8. 预处理指令都是以#开头,预处理指令分3种:
1) 宏定义
2) 条件编译 (一般是判断宏的值)
3) 文件包含
预处理指令在代码翻译成01之前执行,预处理指令的位置是随便的, 作用域从编写指令的那一行开始直到文件结尾。