嵌入式C语言最常见的面试题

C语言常见面试题

1.用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略闰年问题)

#define SECOND_OF_YEAR 123456
#define SECOND_OF_YEAR (365*24*3600)UL

2.数据声明

用变里a给出下面的定义
a)一个整型数(An integer)
    int a;
    
b)一个指向整型数的指针(A pointer to an integer)
    int *p;

c)一个指向指针的的指针,它指向的指针是指向一个整型数( A pointer to a pointer toan integer)
    int **p;

d)一个有10个整型数的数组(An array of 10 integers)
    int a[10];
    
e)一个有10个指针的数组,该指针是指向一个整型数的。《An array of 10 pointers tointegers)
    int* a[10]

f)一个指向有10个整型数数组的指针(A pointer to an array of 10 integers )
    int (*a)[10]

g)一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to afunction 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 return an integer )
    int (*a[10])(int)

static

关键字static的作用是什么?
1、修饰局部变里
默认局部变里在栈空间存在,生存期比较短
局部静态化,局部变里在静态数据段保存,生存期非常长
2、修饰全局变里
防止重命名,限制变量名只在本文件内起作用
3、修饰全局函教
防止重命名,限制该函数只在本文件内起作用

const

关键字const有什么含意?
C:只读,建议性不具备强制性      !=常数
const int a= 100;

C++:常数

volatile

关键字volatile有什么含意?并给出三个不同的例子。
防止c语言编译器的优化。
他修饰的变量,该变量的修改可能通过第三方来修改

嵌入式系统总是要用户对变里或寄存器进行位操作。给定一个整型变里a,与两段代码,第一个设置a的bit3,第二个清除a的bit 3。在以上两个操作中,要保持其它位不变。

unsigned int a;
a |= (0x1<<3);  第三位置位

unsigned int a;
a &= ~(0x1<<3); 第三位清零

在某工程中,要求设置一绝对地址为Ox67a9的整型变里的值为0xaa66。编译器是一个纯粹的ANSI编译器。写代码去完成这一任务。

法一:
int *p = (int*)0x67a9;
p[0] = 0xaa66; // *p = 0xaa66;

法二:
(int*)0x67a9 = 0xaa66;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值