先做14个笔试,再面试。
面试过程:
1.全局变量可不可以定义在可被多个.c文件包含的头文件中?为什么?
可以,在不同的C文件中以 static 形式来声明 同名全局变量 。可以在不同的C文件中声明同名的全局变量,前提是其中只能有一个C文件中对此变量赋初值。
2.static 全局变量和普通全局变量,static 局部变量和普通局部变量区别?static 函数与普通函数有什么区别?
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:
在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
3.程序的局部变量存在于(栈)中,全局变量存在于(静态区)中,动态申请数据存在于(堆)中。
4.关键字volatile有什么含意?并给出三个不同的例子。
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。
5.进程和线程区别
6. typedef union{
long I; 8
int k[5]; 20
char c; 1
}DATE;
struct data{
int cat; 4
DATE cow 20
double 8
}too;
DATE max; 则printf(“%d”,sizeof(too)+sizeof(max));执行结果是52(20+32);
7.进程之间同步机制,并比较优缺点。
8.int(*func[10])(int)
一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
9.进程之间通信的途径
10.atoi
int atoi(const char *str);
把字符串 str转换成 int类型。
11.请找出下面代码中的所有错误说明:以下代码是把一个字符串倒序,如”abc”倒序后变为”dcba”
#include “string.h”
main(){
char *scr = “hello,world”;
char *dest = NULL;
int len = strlen(src);
dest = (char *)malloc(len);
char * d =dest;
char *s = src[len];
while(len--!=0)
d++=s--;
printf(“%s”,dest);
return 0;
}
Q:1.进程死锁的原因,解决办法。
资源竞争及进程推进顺序非法。
互斥、请求保留、不可剥夺、检测与解除死锁
2.多线程编程的时候遇到什么问题
3.tcp网络编程时遇到什么问题?
4. uboot.bin zImage rootfs分别做什么?做的时候遇到什么问题
全局变量 ot