C语言精要
记录分享C语言的一些技巧和方法
ScilogyHunter
一码流年雨疏疏,莫道E人岁月蹴。。。
展开
-
头文件大小写引发的报错
在具体说下windows系统,fat文件系统是不区分大小写的,但现在windows系统基本都用的NTFS文件系统,而NTFS文件系统是区分大小写的,那为何又说windows下不区分文件名大小写呢?这是因为windows为了兼容性,其系统API CreateFile 是不区分大小写的,从而使得NTFS文件系统下也是不区分大小写了。仔细观察发现,报错说的是找不到头文件“syscfgpll/sysCfgpll.h”,而源码中存在的是头文件“syscfgpll/sysCfgPll.h”,这里的字母p大小写不一样。原创 2024-05-28 19:15:11 · 417 阅读 · 0 评论 -
结构体保留字段定义
使用结构体时常为了对齐或匹配需要定义一些保留字段,比如定义一个结构体来描述某设备寄存器,因为寄存器本身不是连续的所以在空缺位置要定义保留字段,如下所示:typedef struct { volatile UINT16 fifo; volatile UINT16 ucsr; volatile UINT16 recerved0; volatile UINT16 ...原创 2019-09-12 17:13:57 · 2951 阅读 · 0 评论 -
矩阵宏,一次定义大量常数
如果要定义GPIO_A_00 到 GPIO_Z_31 即所有的 GPIO 编号,且数值和宏名是有逻辑关系的如下:GPIO_port_pin = port * 32 + pin用传统的方法需要写 26 * 32 = 832 行宏定义,如下:#define GPIO_A_00 (0)#define GPIO_A_01 (1).........#define GPIO_Z_3...原创 2019-09-12 17:35:21 · 436 阅读 · 0 评论 -
宏定义基础知识
#define 叫做 宏定义命令,它是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部原样替换成指定的字符串。宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏名,这只是一种简单粗暴的替换。字符串中可以含任何字符,它可以是常数、表达式、if 语句、函数等,预处理程序对它不作任何检查,如有错误,只能在编译已被宏展开后的源程...原创 2019-10-16 20:59:04 · 751 阅读 · 0 评论 -
深入理解C语言指针
深入理解C语言指针深入理解C语言指针转载 2019-10-16 21:07:32 · 311 阅读 · 0 评论