1、C语言之父?
丹尼斯里奇
2、C语言的特点?
具有出色的可移植性,能够在多种不同的体系的软硬件平台运行
具有简单紧凑,使用灵活的语法机制,能够直接访问硬件
运行效率高
3、什么是库文件和库函数
库文件:只能使用函数和变量,但是看不见函数和变量的实现
库函数:只能使用函数,但是无法看到实现
4、动态库和静态库的区别
静态库:编译速度慢,可执行文件体积大,代码布局好,执行效率高,不易于升级
动态库:编译速度快,可执行文件体积小,代码布局混乱,执行效率不高,易于升级
5、什么是硬实时,什么是软实时
硬实时:在规定那个的时间里完成相应的工作,超出时间有很严重的后果
软实时:在规定的时间内完成相应的工作,超出一点时间也没有关系
6、Makefile的三要素
目标文件、依赖文件、命令行
7、Scanf如何获取空格
输入scanf(“%[^/n]”,s);
8、Printf的特点
Printf是行缓冲,满一行才输出。
遇到以下的情况也会输出:
1、遇到的scanf
2、到了函数结束的时候
3、加了\n
9、什么时候使用c语言,什么时候使用汇编语言?
汇编语言是低级语言,无法实现较复杂的功能,一般用来硬件的初始化
C语言的高级语言,可以实现较复杂的功能,
10、为什么嵌入式系统中选择C语言作为开发语言?
1、操作系统的内核是用C语言来编写的
2、C语言的可移植性好,适应操作系统从一个平台移植到另一个平台
3、操作系统管理者软件和硬件的资源,C语言也是一个可以直接访问硬件的语言,用c语言作为开发语言,能帮助操作系统更好的管理硬件资源
4、C语言的运行效率高,程序运行速度快
11、如何避免头文件被重复包含
#ifdef
#define
......
#endif
12、Gcc编译程序的过程
预处理:头文件、条件编译、宏替换
编译
汇编
连接
13、声明和定义的区别
声明指定了一个变量的标识符,用来描述变量的类型,声明不分配内存空间,可声明多次
定义是对声明的实现或者实例化,定义分配内存空间,只能定义一次
14、定义变量的时候遵循什么原则
左右法则
15、循环的时候怎么判断for还是while,
已知循环的次数用for
不知循环次数的用while
16、#inlcude<stdio.h>和#include”stdio.h”的区别
<>是在系统目录下找,找不到就报错了
“ ”是先在当前的目录下找,找不到去系统目录下找,找不到就报错
17、int *(*