1 . 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SEC_YEAR(365*24*60*60UL) 32位设备int=429467295 16位设备int=65536,八位就更不用说了,加UL第一为了兼容各种设备的处理位,第二因为宏可能作为一个计算单位当乘上一定倍数后难免超出int
2 . 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个。
#define MIN(x,y) ((x)<(y)?(x):(y))
前面为何加(x) (y) 防止MIN()宏嵌套 因为<的优先级比:大(还有位运算符)
3. 预处理器标识#error的目的是什么?
当编译时遇到#error 会生成一错误提示并停止编译,这个东西有点像当你做错事然后家长对你说的话一样,可能这个错误不会导致程序崩溃,只是一些操作如程序定义int类型你却输入char这时候你通过一个判断句检测然后跳到#error中
4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?
While(1)
For(;;)
5. 用变量a给出下面的定义
a) 一个整型数 int a
b)一个指向整型数的指针 int *a
c)一个指向指针的的指针,它指向的指针是指向一个整型数int **a (猜的)
d)一个有10个整型数的数组 int a[10]
e) 一个有10个指针的数组,该指针是指向一个整型数的。 int *a[10]
f) 一个指向有10个整型数数组的指针 int (*a)[10] (猜的)
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int *a(int)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
int *a[10](int)
6. 关键字static的作用是什么?
1,Static为静态关键字,1)在子函数中其作用是定义一个变量它只在子函数有效,并且只一次性赋值,其下次调用还是其值 这里有点像(const) 2)在子模块中用它定义的子函数只能被子模块调用(内连接)(此点像在java中的类中的static 定义的函数一样。
,2,在内存层面,static可以把一个全局变量变成一个局部变量,把一个全局函数变成局部静态函数(外链接变成内连接),当程序大的时候这个方法很有用可以很有的预防整个工程的函数重名,但这个方法不能彻底解决重名问题。
7.关键字const有什么含意?
简单的说:Const 意为“常量”即从定义完后不能改变的量,
其实这个const定义的量可以改变,因为在编译的时候const没有被特定的标志出来只要骗过编译器就可以改变了,但程序员这样定义了就表示这个量没有改变的价值,你只要用的时候调用即可
下面的声明都是什么意思?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。