继续开始第二天的学习,常量和变量。
一、常量
在c语言中,常量就是不可在变的值,如圆周率PI,用关键字“const”来进行定义,常量的名称通常用大写字母来表示。如:
const double PI=3.14
上面的写法也可以写成如下形式:
double const PI=3.14;
c语言的另一种定义常量的形式---宏,一般宏都写在程序的开头,称为预处理行。,宏的写法如下:
#include <stdio.h>
#define DATE 20131112
#define NAME "C Program"
int main()
{
return 0;
}
如果在linux中需要查看预处理后的效果,可以通过使用命令 cc -E,如:
cc -E const.c
如果要将预处理后的效果输出为一个文件,可以如下:
cc -E const.c > aaa.i
然后通过vi进行查看
预处理只做原样替换,不做任何处理,如
#define AA PI*
#define BB 10+student_num
int main()
{
const double PI=3.14;
int const student_num=40;
printf("%g\n",AA BB);
}
最后输出的结果为PI* 10+student_num=71.4;
#define AA PI
#define BB 10+student_num
int main()
{
const double PI=3.14;
int const student_num=40;
printf("%g\n",AA*BB);
}
最后输出结果为PI*10+40=71.4,而不是PI*(10+40)=157
建议用const ,少用#define
二、变量
c语言中强制类型转换只会转变变量值,类型不会转变
sizeof() 计算某个变量占用多少字节,只关心类型,如:
int n=10;
sizeof(int); sizeof(n) 实际用的是类型;sizeof(n+5);sizeof 中可以是表达式,但不会计算其中的表达式,只关心类型如:
printf("%d",sizeof(n=123)); 输出结果为4
三、小技巧
man -a printf可以查看头文件
q来进行下一页
vi中
vi初始化文件 ~/.exrc
set nu 设置显示行号
set ts=4 tab建有多远 现在设置为四个字符
gcc -S sizeof.c 表示看汇编,会产生一sizeof.s
gcc sizeof.s 也可以编译
汇编中“esp”表示栈顶指针