首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

常见C语言编程规范

头文件: 1.头文件中适合放置接口声明,不适合放置实现。 2.头文件应向稳定方向包含,产品依赖于平台,平台依赖于标准库。 3. .c/.h文件禁止包含用不到头文件。...4.每一个.c文件应有一个同名.h文件,用于声明需要对外公开接口。 5.禁止头文件循环依赖。 6.头文件应当自包含(任意一个头文件均可独立编译)。 7.禁止在extern"C"中包含头文件。...9.只能通过包含头文件方式使用其他.c提供接口,禁止在.c中通过extern方式使用外部函数接口、变量。...6.函数调用不要作为另一个函数参数使用,否则对于代码调试、阅读都不利。 7.函数break,return时一定要注意资源释放,比如释放申请内存、释放锁。 8.禁止内存操作越界。...(4)自动存储对象地址不应赋值给其他在第一个对象已经停止存在后仍然保持对象(具有更大作用域对象或者静态对象或者从一个函数返回对象)。

2.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

C语言 编程练习22

一、题目 1、编一个程序,输入x值,按下列公式计算并输出y值; 2、已知数A与B,由键盘输入AB值,交换它们值,并输出。...3、给一个不多于5位正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 4:利用条件运算完成此:学习成绩>=90分同学用A表示,60-89分之间用B表示,60分以下C表示。...5、输入年和月,则输出此年此月天数,如大月有31天,小月有30天,而闰年2月有29天,平年则只有28天。...程序分析:我们想办法把最小数放到x上,先将x与y进行比较,如果x>y则将x与y值进行交换,然后再用x与z进行比较,如果x>z则将x与z值进行交换,这样能使x最小。...所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数,在屏幕上显示该数。

7.2K90

C语言编程常见错误集锦 【下】

当输入i值小于等于10时,两者输出结果无区别。当输入i大于10时,while语句不执行循环体,do-while语句执行一次循环。...可分解为:b=i;i=i+1; 【第二个区别】 i++ 不能作为左值,而++i 可以 左值是对应内存中有确定存储地址对象表达式值,而右值是所有不是左值表达式值。 ?...5、忽略sizeof()和strlen()区别 ? 6、定义数组时,将定义“元素个数”误认为是可使用最大下标 ? C语言中,定义时用a[5],表示a数组中有5个元素。...其下标是从0开始,数组中最后一个元素是a[4],不存在a[5]。 7、定义数组时误用变量 ? 数组名后用方括号括起来是常量表达式,可以包括常量和符号常量。即C不允许对数组大小作动态定义。...C中,数组名代表地址 正确应为: ? 9、同时定义了形参和函数中局部变量 ? 形参应在函数体外定义,而局部变量应在函数体内定义。 正确应为: ? ? —END—

1.5K10

编程基础】C语言常见宏定义

我们在使用C语言编写程序时候,常常会使用到宏定义以及宏编译指令,有的可能比较常用,有的可能并不是很常用,是不是所有的C语言宏定义以及宏指令你都清楚呢?...# 空指令,无任何效果 #include 包含另外一个文件 #define 定义宏 #undef 取消已定义宏...#运算符 出现在宏定义中#运算符把跟在其后参数转换成一个字符串。 ##运算符 用于把参数连接到一起。预处理程序把出现在##两侧参数合并成一个符号。...__FILE__ 包含当前程序文件名字符串 __LINE__ 表示当前行号整数 __DATE__ 包含当前日期字符串 __STDC__ 如果编译器遵循ANSI...C标准,它就是个非零值 __TIME__ 包含当前时间字符串 另外在GCC下面,还有如下宏定义: __FUNCTION__ 表示当前函数名 __VA_ARGS__ 表示可变参数输入

1.9K80

c语言编程常见错误集锦 【上】

C语言区分大小写。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。 ? 2.忽略变量类型,进行不合法运算 %是求余运算,得到a/b整余数。...C语言规定以“\0”作为字符串结束标志,它是系统自动加上,所以字符常量“b”其实包含两个字符'b' '\0',而把它赋给一个字符变量是不行。 ?...4.忽略了“=”和“==”区别 C语言中,“=”是赋值运算符,“==”是关系运算符。在此代码中,前者是进行比较,后者是进行赋值。 ?...5.忘记加分号 几乎在所有编程语言中,都是用“;”代表一句或多句语句结束。 ? 6.多加分号 ? ? ? 7.忘加地址运算符“&” scanf函数作用是:按照a在内存中地址将a值存进去。...编程

1.3K10

编程基础】C语言内存使用常见问题

修改只读数据区内容会引发段错误(Segmentation Fault),但这种低级失误并不常见。一种比较隐秘缺陷是函数内试图修改由指针参数传入只读字符串。...但为求安全性而封装检测机制做法在某种意义上得不偿失,既不及Java等高级语言优雅,又损失了C语言简洁和高效。因此,根本解决之道还是在于设计和编码审慎周密。相比事后检测,更应注重事前预防。...编程时应重点走查代码中所有操作全局数据地方,杜绝可能导致越界操作,尤其注意内存覆写和拷贝函数memset/memcpy/memmove和数组下标访问。...指针可由volatile修饰(尽管并不常见),如中断服务子程序修改一个指向某buffer指针时。...内存越界导致内存分配失败情况更为常见。此时,可从分配失败地方开始回溯最近那个分配成功malloc,看附近是否存在内存拷贝和数组越界操作。

3.2K60

C语言经典编程100例 71~80

71、编写input()和output()函数输入,输出5个学生数据记录。 程序分析: 无。...:2 请输入第3个元素值:3 请输入第4个元素值:4 请输入第5个元素值:5 刚刚建立各个链表元素值为: 1 2 3 4 5 73、反向输出一个链表。...:2 请输入第3个元素值:3 请输入第4个元素值:4 请输入第5个元素值:5 刚刚建立各个链表元素值为: 1 2 3 4 5 74、连接两个链表。...: b a t 排序后结果为: a b t 80、海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只 猴子把多一个扔入海中,拿走了一份。...第二只猴子把剩下桃子又平均分成五份,又多了 一个,它同样把多一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做, 问海滩上原来最少有多少个桃子? 程序分析: 无。

1.1K10

C语言经典编程100例 91~100

: cyouagain.txt 现在你可以输入你要保存一些字符,以#结束: cyouagain.cn IT学长 # 执行完程序后,在c文件目录下生成 cyouagain.txt: cyouagain.txt...test 文件: test 文件中内容如下: 99、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中信息合并(按字母顺序排列),输出到一个新文件C中。...程序分析: 在c文件目录下创建 A.txt 与 B.txt。A.txt中内容为:123,B.txt中内容为:abc,然后运行程序。...C.txt。...C.txt 文件中内容: 100、有五个学生,每个学生有3门课成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出平均分数存放在磁盘文件"stud"中。

1.7K30

C语言经典编程100例 11~20

printf("*"); } } printf("\n"); return 0; } 运行结果: 请输入整数:90 90=2*3*3*5 15、题目:利用条件运算符嵌套来完成此...:学习成绩>=90分同学用A表示,60-89分之间用B表示,60分以下C表示。...程序分析: (1)最小公倍数=输入两个数之积除于它们最大公约数,关键是求出最大公约数; (2)求最大公约数用辗转相除法(又名欧几里德算法) 1)证明:设c是a和b最大公约数,记为c=gcd(a,b...),a>=b, 令r=a mod b 设a=kc,b=jc,则k,j互素,否则c不是最大公约数 据上,r=a-mb=kc-mjc=(k-mj)c 可知r也是c倍数,且k-mj与j互素,否则与前述k,j...例如6=1+2+3,编程找出1000以内所有完数。

1.9K20

基于udpsocket编程 c语言_C语言编程游戏

1、UDP网络编程主要流程 UDP协议程序设计框架,客户端和服务器之间差别在于服务器必须使用bind()函数来绑定侦听本地UDP端口,而客户端则可以不进行绑定,直接发送到服务器地址某个端口地址。...UDP协议客户端流程 UDP协议客户端流程 UDP协议客户端流程分为套接字建立、设置目的地址和端口、向服务器发送数据、从服务器接收数据、关闭套接字等5个部分。...图1.3 UDP编程流程 2、相关函数 (1) int socket(AF_INET, SOCK_DGRAM, 0); 创建udp socket,返回套接字描述符,UDP协议建立套接字方式同TCP方式一样...SOCK_DGRAM, 0)) < 0) ERR_EXIT("socket"); echo_cli(sock); return 0;} 实验结果: UDP编程注意...6、ICMP异步错误 7、UDP connect 8、UDP外出接口的确定 9、太大UDP包可能出现问题 由于UDP不需要维护连接,程序逻辑简单了很多,但是UDP协议是不可靠,实际上有很多保证通讯可靠性机制需要在应用层实现

18K10
领券