嵌入式C语言–基础知识
嵌入式C语言--基础知识
一. 含参数的宏与函数的不同点
1)函数
函数调用时,先求出实参表达式的值,然后带入形参。
函数调用是在程序运行时进行的,分配临时的内存单元;
对函数中的实参和形参都要定义类型,二者的类型数量要求一致;
调用函数只可得到一个返回值;
函数调用不使源程序变长;
函数调用占运行时间(分配单元、保留现场、值传递、返回);
2)宏
使用带参的宏只是进行简单的字符替换。
宏替换则是在预编译时进行的,在展开时不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。
宏没有类型检查,宏名无类型,它的参数也无类型,只是一个符号代表,展开时带入指定的字符即可。
调用宏之后可以得到多个结果;
使用宏时,宏替换后源程序增长;
宏替换不占运行时间,只占编译时间;
二. scanf格式化输入的注意事项
输入数据时采用的分隔符应与格式控制中的分隔符一致;
输入数据时可指定宽度,但不可规定精度;输入格式符带有*,表示该数据不赋值
无符号数可用%d、%o、%x格式输入;
用c格式输入字符时,空格、转义字符均为有效字符;
遇空格、回车、Tab键,遇宽度以及非法输入可认为数据输入结束;
三. 指针
英文名pointer,也叫地址,就是内存块的首地址
1)指针变量(地址变量)
指针变量就是存放指针数据的变量
int*p;//p只能存放int类型内存块的地址
所有指针变量都是4字节(32环境)
未赋初值的指针变量禁止使用(访问未初始化的指针的值程序直接崩溃。访问NULL指针的值也会奔溃)
2)指针常见含义
*p的含义:
根据p里面的地址,找对应类型的内存块。
p+n的含

最低0.47元/天 解锁文章
1847

被折叠的 条评论
为什么被折叠?



