
C语言
QJings
这个作者很懒,什么都没留下…
展开
-
《C专家编程》C语言实现有限状态机FSM
C专家编程,用C语言实现有限状态机FSM,使用函数指针数组实现原创 2023-04-06 15:07:11 · 286 阅读 · 0 评论 -
《C陷阱与缺陷》词法陷阱-贪心法
C陷阱与缺陷中的贪心法原创 2023-04-05 16:21:06 · 188 阅读 · 0 评论 -
C语言验证存储方式是大端模式还是小端模式
字节序分为两类:Big-Endian(大端字节序) 和 Little-Endian(小端字节序)大端字节序:高字节存放在低地址,低字节存放在高低址小端字节序:低字节存放在高低址,高字节存放在低地址原创 2021-05-14 09:53:14 · 400 阅读 · 2 评论 -
C语言中strlen()和sizeof()求数组和字符串的长度
strlen ()是一个函数,用来求字符串的长度,其值在运行时才能确定strlen() 函数从字符串的开头位置依次向后计数,直到遇见\0,然后返回计时器的值。最终统计的字符串长度不包括\0sizeof()是一个运算符,其值在编译的时候就已经确定了,可以获得数据类型或变量在内存中所占的字节数举几个例子说明下:#include <stdio.h>#include <string.h>int main(){ char str[20] = "string"; p原创 2021-04-26 15:25:17 · 2062 阅读 · 1 评论 -
C语言中的条件编译
常用的预编译指令包括文件包含,宏定义和条件编译文件包含文件包含很简单,也是最常见的,语法格式:#include <头文件>#include "头文件"顺便说一下这两种形式的不同:尖括号<>这种方法只能引用编译器类里的头文件也就是编译器只会查找保存系统标准头文件的文件双引号""这种方法编译器先查找当前目录是否有指定名称的头文件然后在从标准头文件目录中查找在实际编程中,如果包含的头文件是我们自己编写的,那么使用双引号""这种方法宏定义:宏定义在头文件中也很常见,原创 2021-02-18 15:25:09 · 394 阅读 · 0 评论 -
【C语言编程规范】宏定义的多条语句使用do-while(0)封装
有时候,你会发现,C语言中很多宏定义中使用了do-while(0)比如,下面的这两个多条语句的宏定义(来源于头文件math.h)/* Get a 32 bit int from a float. */#ifndef GET_FLOAT_WORD# define GET_FLOAT_WORD(i,d) \do { \ ieee_float_shape_type gf_u; \ gf_u.value = (d); \ (i) = gf_u.word原创 2021-02-07 16:47:52 · 2199 阅读 · 0 评论 -
【C语言编程规范】用宏定义表达式的时候要使用完备的括号
宏只是简单的代码替换,不会像函数一样先将参数计算后,再传递在使用带参数的宏的时候要注意:所有的参数都加括号,然后整个表达式在加上一个括号错误示例:#include <stdio.h>#define RECTANGLE_AREA1(a, b) a * b#define RECTANGLE_AREA2(a, b) (a * b)#define RECTANGLE_AREA3(a, b) (a) * (b)int main(void){ int a = 1; int b = 2原创 2021-02-03 18:07:49 · 4855 阅读 · 1 评论 -
C语言中的bool类型
C语言中的bool类型首先要说明的是,C语言是没有bool这种类型的(C++是有的)C99标准添加了_Bool类型,用于表示布尔值,即逻辑值true和false#include <stdio.h>int main(){ _Bool flag = 1; if (flag) { printf("true"); } else { printf("false"); } return 0;}输出结果为true当然如原创 2021-02-01 16:44:45 · 2191 阅读 · 0 评论