大家一定都在等STM32的开发板吧,我也在等,呵呵,玩遍各种开发板的时候,你是否忘了修练内功呢?
会C语法与会用C语言写程序是两个概念,C的灵活性以及由此而产生的陷阱非常非常多,敢不敢测测自已的C语言功底?欢迎跟贴讨论下面的问题:
1、 用a给下面变量定义:
a) 一个整型数
b) 一个指向整型数的指针(A pointer to an integer)
c) 一个指向指针的的针,它指向的指针是一个整型数
d) 一个有10个整型数的数组|
e) 一个有10个指针的数组,该指针是指向10个整形数的
f) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数
g) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数
2、关键字static的作用是什么?
3、关键字const是什么含意?
4、关键字volatile有什么含意?
5、嵌入式系统总是要用户对变量或寄存器进行位操作。给定一个整型变量a,写两段代 码, 第一个设置a的bit 3,第二个清除a的bit 3。在以上两个操作中,要保持其它位不变。
6、嵌入式系统经常具有要求程序员去访问某特定的内存位置的特点。在某工程中,求设置一绝对地址为0x67a9的整型变量的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。
7、中断是嵌入式系标中的重要的组成部分,这导致了很多编译开发商提供一种扩展让标准备C支持中断,具体代表是产生了一个新的关键字__interrupt。下面的代码就使用了__interrupt去定义一个中断服务程序,请评论一下此代码的。
__interrupt double compute_area (double radius)
{
double area = PI * aadriuas* radius;
printf(“%f”,area);
return area;
}
8、下面的代码输出是什么,为什么?
void foo(void)
{
unsigned int a = 6;
int b = -20;
(a+b> 6) ? puts("> 6") : puts("<= 6");
}
9、C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;