C面试题(整理,更新中...)
1.用预处理指令#define声明一个常数,表明1年有多少秒(闰年忽略)
#define SECONDS_PER_YEAR (60*60*24*365)UL
2.写一个“标准”宏 MIN,输入两个参数并返回较小的一个
#define MIN(A,B) ( ( (A)<=(B) )?(A):(B) )
3.预处理标识#error的目的是什么?
停止编译并显示出错信息
4.用C语言编写一个死循环 ?
while(1)
{
}
5. 用变量a给出下面的定义
a) 一个整型数(An integer)---- int a;
b) 一个指向整型数的指针(A pointer to an integer-----int *a;
c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer
to an integer)-------int **a;
d) 一个有10个整型数的数组(An array of 10 integers)----int a[10];
e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to
integers)------------int *a[10];
f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)---int (*a)[10]
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a fu
nction that takes an integer as an argument and returns an integer)------int (*a)(int)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型
数( An array of ten pointers to functions that take an integer argument and r
eturn an integer )--------int (*a[10])(int)
6.关键字static的作用是什么?
1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。(静态局部变量?)
2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。(静态外部全局变量?)
3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。(静态外部函数?)
还有一个解释:
1.修释局部变量时,表示它为静态局部变量,生命周期同程序运行时间一样,只能被初始化一次
2.用于全局变量时,表示静态全局变量,变量可见范围在本文件中可见,其它不可见
3.用于函数内时,变量可见范围为函数内,其它不可见(觉得包括在第一个中)
总结:限制了变量的作用域
 
相关文档:
在c++调用c程序时,回调函数是不能直接使用的,以c++调用c的Gtk函数为例, 比如,在g_idle_add (init, NULL);
这句话中,一旦idle就会调用函数init(), 这个init()还会对类的成员变量进行处理。
这时,假如把init()简单地定义为类的普通成员函数就会出现类型不匹配的错误,因为g_idle_add ......
----------------------------------------------------------------------------------------------------------------------------------------
/**/
/*
********************************************************************************************************
* @Description:s3c2410的rtc驱动的实 ......
CreateThread函数
前面讲过,进程的主线程会在CreateProcess调用时自动创建。假如你要手工创建线程,你可以调用CreateThread函数:
HANDLE CreateThread(
PSECURITY_ATTRIBUTES psa,
DWORD cbStackSize,
PTHREAD_START_ROUTINE pfnStartAddr,
PVOID pvParam,
DWORD dwCreateFlags,
PDWORD pdwThreadID) ......
下面的例子都在Ubuntu8.04 GCC下编译的结果,有些没有给结果
编程一定要自己动手试一试!
1.定义与声明,定义要分配内存,声明只是声明在别处定义了
int a; //定义
extern int a; //声明
char str[100]
extern char str[] //ok
char * str[]
extern char str[] //error
char ......