c语言
Allen.Iverson
自学记录,欢迎交流指正。
展开
-
c语言中标签的用法
尽管C语言允许使用标签,但现代编程实践通常建议限制goto语句的使用,并优先使用结构化控制流(如循环和条件语句)来组织代码。switch语句中的case和default标签是处理多分支条件的合法且有用的方式。原创 2024-09-01 15:28:57 · 486 阅读 · 0 评论 -
变量声明和变量定义的区别
变量定义通常放在**.c文件**中。这是因为定义变量时,编译器需要为变量分配内存,而这应该在源文件中进行,以便在编译时有具体的实现。定义通常不会出现在头文件中,因为头文件是为了声明和共享接口,而不是定义实现。示例(在file1.c// file1.c// 定义变量2. 变量声明变量声明通常放在**.h文件**中,尤其是当你需要在多个源文件中共享这个变量时。在头文件中使用extern关键字声明变量,可以让其他源文件知道这个变量的存在,并且在编译时能够正确链接到定义。示例(在file1.h。原创 2024-09-01 12:53:12 · 485 阅读 · 0 评论 -
结构体struct的大小计算
所以对于 S1 结构体大小为 2*3=6,至于为什么第二个 char,多的那个字节不丢到,就是遵循第三个原则,就是结构体大小结果要为成员中最大字节的整数倍。而对于 B,先不要管 A a,也就是先去掉 A a 成员结构体 B 算出其为 8,所以最后结果为 8+16=24;再看一个:就是当结构体成员变量是另外一个结构体时,只要把结构体中成员为另一结构体作为整体相加就行。因为 int 占 4 个,而 char 已经占了一个,不够,所以那三个只能多余占位。注意: 为什么 仅仅改变了结构体成员的顺序,结果不一样?原创 2024-08-06 18:52:30 · 454 阅读 · 0 评论 -
在C语言中,联合体或共用体(union )是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。
在C语言中,union是一种特殊的数据类型,允许在相同的内存位置存储不同的数据类型。这意味着union中的所有成员共享同一块内存空间,因此它们之间会相互覆盖。在你给出的union由于union的特性,这三个成员中的任何一个都可以被存储在union分配的内存空间中,但一次只能存储一个成员的值。这意味着,如果你给type_16赋值,那么type_u8和type_u16的值将会变得不可预测(因为它们共享相同的内存位置),反之亦然。原创 2024-08-06 18:03:10 · 281 阅读 · 0 评论 -
结构体(struct)和枚举(enum)有什么区别
通常用于表示一组相关联的数据,如表示一个学生的信息(姓名、年龄、成绩等)或者表示一个车辆的属性(品牌、颜色、型号等)。- 结构体是一种用户自定义的数据类型,允许你组合多个不同类型的变量(成员变量)到一个单独的数据结构中。- **访问方式**:结构体的成员变量可以单独访问和修改,枚举常量一般作为整数常量使用,不可修改。- **用途不同**:结构体用于组合多个不同类型的变量,枚举用于定义一组有意义的常量。- **成员类型**:结构体的成员可以是任意数据类型,枚举的成员是整数常量。原创 2024-07-14 19:44:19 · 542 阅读 · 0 评论 -
进制数相关
在数据面前加前缀表示不同的进制数。不同进制数的输入和输出。原创 2024-07-14 12:20:04 · 168 阅读 · 0 评论 -
关于字节(Byte)和位(bit)的换算和常见的数据传输
1kBps=8kbps即1kByte/s=8kbit/s?B=Byte(字节),b=bit(位)per second即每秒。原创 2024-02-04 11:45:32 · 452 阅读 · 0 评论 -
使用keil5IDE调试时,C语言调试技巧汇总
如果后面的代码比其他代码呈现浅灰色,说明宏定义没有被声明,或者没生效,而且通过更进选项(go to definiton)也找不到定义的位置;反之,颜色应该和其他代码一致,并且可以更进到定义的位置。#if和#endif的匹配。原创 2024-01-09 19:36:44 · 502 阅读 · 0 评论