随笔分类 -  C/C++

摘要:while((ch=getchar()) !=EOF && ch != '\n');语句作用:清除输入缓存。 如:需要使用函数scanf读取数字123,实际输入的的数据为:123\n(回车),而scanf函数只是读取数字123,\n(回车)还放在输入缓冲内,后续读取数据就可能出错。 示例: 1 in 阅读全文
posted @ 2020-10-14 20:24 xbook_ben 阅读(2501) 评论(0) 推荐(1)
摘要:1、将函数内部定义的变量用static修饰 由于static修饰的变量,分配在静态内存区(类似于全局变量区),函数返回时,并不会释放内存,因此可以将要返回的变量加static修饰。 2、使用分配在堆上的内存 分配在堆上的内存主要指通过malloc、calloc、realloc等函数动态分配的内存,由 阅读全文
posted @ 2019-05-23 09:18 xbook_ben 阅读(16998) 评论(1) 推荐(1)
摘要:C语言使用return关键字返回函数值,可以很好对函数做封装,此处的疑问是:函数内部创建的变量都是局部变量,即私有的,作用域就在函数之内,为什么却可以把值传给调用函数? 解释这个问题还需要从C语言调用函数传参类比来说,C语言传参调用时,可以采用传值和传指针两种方式。 传值的形式:只是将参数值的拷贝传 阅读全文
posted @ 2019-05-22 14:14 xbook_ben 阅读(16438) 评论(0) 推荐(3)
摘要:学习STM32偶然发现:在Keil中直接预先定义宏USE_STDPERIPH_DRIVER,但是却没有指定宏的值。而在头文件中判断用的是如下代码: 1 #ifdef USE_STDPERIPH_DRIVER 2 #include "stm32f4xx_conf.h" 3 #endif /* USE_ 阅读全文
posted @ 2019-04-29 14:19 xbook_ben 阅读(13820) 评论(2) 推荐(1)
摘要:#undef 作用:取消定义的宏 指令格式:#undef 标识符 运行结果: 注意:在《MISRA-C-2004工业标准的C规范》中要求不允许使用#undef,详见《MISRA-C-2004工业标准的C规范》规则19.6。 阅读全文
posted @ 2019-03-05 11:01 xbook_ben 阅读(3285) 评论(0) 推荐(1)
摘要:1、a[i]++:表示对当前数组元素值自增,此时可以把a[i]简单看做一个变量x,操作后,x的值加1; 结果: 2、a[i++]:表示指向下一个数组元素值; 结果: 注意:此处有i++和++i的陷阱,实际应用的时候注意。 阅读全文
posted @ 2019-02-19 08:48 xbook_ben 阅读(6651) 评论(0) 推荐(0)