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之前执行,预处理指令的位置是随便的,

作用域从编写指令的那一行开始直到文件结尾。