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

常见的C语言编程规范

3. .c/.h文件禁止包含用不到的头文件。 4.每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口。 5.禁止头文件循环依赖。 6.头文件应当自包含(任意一个头文件均可独立编译)。...7.禁止在extern"C"中包含头文件。 8.禁止在头文件中定义变量,如果头文件被其他文件包含,会引发重复定义。...9.只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量。...编码: 1.函数不变参数使用const。 2.全局变量应增加“g_”前缀。 3.静态变量应增加“s_”前缀。 4.在源文件范围内声明和定义的所有函数,除非外部可见,否则应该增加static关键字。...6.函数调用不要作为另一个函数的参数使用,否则对于代码的调试、阅读都不利。 7.函数break,return时一定要注意资源的释放,比如释放申请的内存、释放锁。 8.禁止内存操作越界。

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

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

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

    1.3K10

    C语言中常见的内存函数

    下面是这个函数使用的一个例子: memcpy的模拟: 我们可以参照cplusplus官方memcpy函数的格式进行模拟。 如下: 这个函数的模拟并不难,不过多讲解。...事实上,当destination和source发生重叠时,使用memcpy函数拷贝的结果是未定义的。 此时我们就会使用系统自带的memmove函数,这个函数是专门解决空间重叠的情况。...下面介绍memmove函数: memmove函数介绍 https://legacy.cplusplus.com/reference/cstring/memmove/?...kw=memmove这个函数的作用跟memcpy函数相似,只不过是专门解决重叠拷贝的情况。...当前几次的比较已经出现结果,函数就不会继续比较下去了。 使用例子: memcmp的模拟: 四.memset(内存设置) 这个函数是用来设置内存的的,以字节为单位。

    5010

    【编程基础】C语言指针函数和函数指针

    往往,我们一提到指针函数和函数指针的时候,就有很多人弄不懂。下面详细为大家介绍C语言中指针函数和函数指针。...当然,实际程序中,一般也只用到二级指针,三个星号不常见,更别说四个星号了。 指针的指针需要用到指针的地址。...char c=\'A\'; char *p=&c; char **cp=&p; 通过指针的指针,不仅可以访问它指向的指针,还可以访问它指向的指针所指向的数据。...下面就是几个这样的例子: char *p1=*cp; char c1=**cp; 你可能想知道这样的结构有什么用。利用指针的指针可以允许被调用函数修改局部指针变量和处理指针数组。...有些程序员喜欢用指针数组来代替多维数组,一个常见的用法就是处理字符串。

    2.1K100

    C++网络编程之路(一):常见socket函数

    用这个系列在记录自己的C++网络编程之路。...首先,网络编程必然离不开socketAPI函数,大多数 Socket API 都源于BSD Socket (即伯克利套接字(Berkeley Sockets)),因此这些 socket 函数在不同的平台有着相似的签名和参数...### 常用的socketAPI函数 函数名称 函数简单描述 附加说明 socket 创造某种类型的套接字 bind 将一个 socket 绑定一个ip与端口的二元组上 listen 将一个 socket...具体而言,我们想要查看bing函数的方法,只需要在 shell 终端输入 man bind 如上面的代码片段所示,man手册对于一个函数的说明一般包括如下几部分: 函数声明及相关数据结构所在的头文件,...你实际编码时如果需要使用这个函数必须包含该头文件; 函数的签名,即该函数的参数类型、个数和返回值; 函数用法说明,并可能包括一些注意事项; 函数返回值说明; 调用函数出错可能得到的错误码值; 一些相关函数在

    43010

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

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

    3.4K60

    【C语言】常见的C语言概念

    exe可执行文件 3.2 编译器的对比 常见的C语言编译器都有哪些呢?...函数 每个C语言程序不管有多少行代码,都是从 main 函数开始执行的, main 函数是程序的入口,main 函数也被叫做:主函数。...main函数是程序的入口 main函数有且仅有一个 即使一个项⽬中有多个.c文件,但是只能有一个main函数(因为程序的入口只能有一个) 第一次写代码,一些常见的错误总结: main被写成了mian...为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。...语句和语句分类 C语言的代码是由一条一条的语句构成的,C语言中的语句可为以下五类: 空语句 表达式语句 函数调用语句 复合语句 控制语句 12.1 空语句 空语句是最简单的,一个分号就是一条语句

    10110

    【C语言】初识C语言(常见的C语言概念)

    缺点是编程复杂,可读性和可移植性差。...,比起低级语言易懂易学,可移植性好,编程效率高,但是执行效率没有低级语言高,需要经过编译或解释,C语言就是采用编译的一种高级语言 二.为什么选择C语言 C语言常年霸榜各类高级语言前三,属于基础必学的语言...,其功能强大,而且许多语言都很相似,如果学好C语言,对学习其他语言也有很大帮助 三.编译器的选择 C语言是一门编译型的语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令 常见的编译器有:msvc...main函数特点有(1)main函数是程序的入口(2)main函数有且仅有一个,如果有多个,那么计算机就不知道从哪里进入程序了(3)即使一个项目有多个.c文件,但只能有一个main函数 第一次写代码时常见错误...,按ctrl+k,ctrl+u可以取消注释 总结 以上就是今天所要讲的C语言常见的概念,下次讲C语言的数据类型和变量,如果今天的内容有不懂的还请在评论区留言,当然,还有许多不足的地方也请大家多多指正,谢谢

    13310

    轻松学习C语言编程之函数知识详解

    函数是一组一起执行任务的语句。每个C程序至少有一个函数,即main,所有最简单的程序都可以定义其他函数。您可以将代码划分为单独的函数。...C编程语言中函数定义的一般形式如下 : return_type function_name( parameter list ) { body of the function} C编程中的函数定义由函数头和函数体组成...在这种情况下,对函数内部参数所做的更改不会对参数产生影响。 默认情况下,C编程使用call by value来传递参数。通常,这意味着函数内的代码不能改变用于调用函数的参数。...每个C程序至少有一个函数,即main,所有最简单的程序都可以定义其他函数。...我有一个微信公众号,经常会分享一些C语言/C++技术相关的干货;如果你喜欢我的分享,可以用微信搜索“C语言学习部落”关注,欢迎大家加入千人交流答疑裙:627+012+464

    1.1K20

    c语言常见概念----

    int 代表的是整型,整数都属于整型类型(integer) Int 表示main函数结束的时候回返回一个整数,return 0 main函数式程序的入口,main有且仅有一个,即是一个项目中有多个.c文件...C语言关键字:C语言定义的,具有特定含义、专门用于特殊用途的C语言标识符,也称为保留字 define不是关键字,是编译器实现的,用来定义宏的预处理指令,不是C语言中的内容。...int、struct和continue都是C语言中包含的关键字。...,是c语言的标准库中提供的现成的函数 功能:在屏幕上面打印信息 printf=print+format 意思就是按照格式打印信息 %d:打印整数 %c:打印字符 %f:打印小数 %s:打印字符串 双引号括起来的一串字符被称为自字符串...库函数的使用要使用对应的头文件 关键字 程序员在创建标识的时候不能和关键字重复 关键字也不是我们自己能创建的 c语言有32个关键字 1.auto break case char const continue

    9210

    【C语言】常见概念

    C语言就是众多计算机语言中的一种,当然C++/Java/Go/Python都是计算机语言。 2. C语言的历史和辉煌 C语言最初是由Unix系统的开发工具而发明的。 3....可执行程序 3.2 编译器的对比 C语言是一门编译型的计算机语言,需要依赖编译器将计算机语言转换成机器能够执行的机器指令。 那我们常见的C语言编译器有哪些呢?...main函数 每个C语言程序不管有多少行代码,都是从main函数开始执行的,main函数是程序的入口,main函数也被叫做:主函数。...main函数是程序的入口 main函数有且仅有一个 即使一个项目中有多个.c文件,但是只能有一个main函数(因为程序的入口只有一个) 第一次写代码的一些常见错误总结: main被写成mian...为了不再重复实现常见的代码,让程序员提升开发效率,C语言标准规定了一组函数,这些函数再由不同的编译器厂商根据标准进行实现,提供给程序员使用。

    20210

    C语言常见字符函数和字符串函数精讲

    引言 在C语言编程中,字符函数和字符串函数是处理文本数据不可或缺的工具。本文将详细介绍这两类函数的定义、功能、使用方法,并通过示例代码帮助读者更好地理解和应用这些函数。...while (str[i]) { c = str[i]; if (islower(c)) c -= 32; putchar(c); i++; } return 0; }...while (str[i]) { c = str[i]; c=toupper(c);//这里直接使用函数来转换 putchar(c); i++; } return 0; } 输出...c: 要查找的字符的 ASCII 值。 功能: strchr 函数在字符串 s 中查找指定字符 c 的第一次出现。搜索不包括终止空字符 '\0'。...在不同的系统和C语⾔标准库的实现中都规定了⼀些错误码,⼀般是放在 errno.h 这个头⽂件中说明的,C语⾔程序启动的时候就会使⽤⼀个全⾯的变量errno来记录程序的当前错误码,只不过程序启动的时候errno

    11310

    C语言常见概念

    总结:人和人交流使用自然语言,而人和计算机交流我们使用计算机语言,而C语言就是一种计算机语言,我们这些程序员,计算机科学家通过C语言写出一些代码来,就是程序,来给计算机下达指令,让计算机按照我们的预期来工作...C语言的历史和辉煌各种语言的发展:3....main函数是程序的⼊⼝main函数有且仅有⼀个即使⼀个项⽬中有多个.c⽂件,但是只能有⼀个main函数(因为程序的入口只能有一个)第一次写代码,一些常见的错误总结:main 被写成了mianmain后边的...C语言中也可以把⼀个字符串放在⼀个字符数组中,我们在这⾥利⽤下⾯的代码验证⼀下 \0 的功能。...C语言常见概念部分就到此结束了 。

    7410

    C语言----C语言内存函数

    1.这个函数在遇到\0的时候并不会停下来 2.如果source和destination有任何的重叠,复制的结果都是未定义的 memcpy函数最终返回的是目标空间的起始地址 //函数的一种写法: 这个函数最终返回的是目标空间的起始地址...: //函数的一种写法: //这个函数最终返回的是目标空间的起始地址 void* my_memcpy(void *dest, const void*src, size_t num) { assert...,非要使用,结果就是未定义的 //只负责不重叠的内存 函数的返回值是void*类型的数据 这个memcpy函数有三个数据 2.memmove--内存移动--使用和模拟实现 2.memmove--内存移动...//总之:这个拷贝是分三块区域的,最前面的一块区域满足dest<src //我们只能从前往后进行拷贝,不然会出错误 //而剩下的两块区域可以同时从后往前进行拷贝,那么我们就将这两块区域放在一起 在C语言标准中...,明确规定了memcpy只要能实现不重叠的拷贝就行,重叠的拷贝交给memmove 我们发现vs上面的库函数memcpy函数也能实现重叠内存的拷贝 我们在以后的拷贝中,我们可以用memmove,因为不管是重叠的还是不重叠的都能搞定

    11610

    C语言中常见库函数(1)——字符函数和字符串函数

    前言 在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语言标准库中提供了⼀系列库函数,接下来我们就学习一下这些函数。...1.字符分类函数 C语言中有一系列的函数时专门做字符分类的,也就是一个字符是属于什么类型的字符的的。...2.字符转换函数 C语言中提供了2个字符转换函数: int tolower(int c);//将参数传进去的大写字母转小写 int toupper(int c);//将参数传进去的小写字母转大写 3.strlen...strcpy的模拟实现: //1.参数顺序 //2.函数的功能,停止条件 //3.assert //4.const修饰指针 //5.函数返回值 //6.题目出自《高质量C/C++编程》书籍最后的试题部分...在不同的系统和C语言标准库的实现中都规定了⼀些错误码,一般是放在 errno.h 这个头文件中说明的,C语言程序启动的时候就会使用一个全局的变量errno来记录程序的当前错误码,只不过程序启动的时候errno

    10110

    Python函数式编程(二):常见高级函数

    一个函数的参数中有函数作为参数,这个函数就为高级函数。 下面学习几个常见高级函数。...,并把结果作为新的Iterator返回 举例: 有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]上 >>> def f(x): ......,可以这么写: def not_empty(s): return s and s.strip() list(filter(not_empty, ['A', '', 'B', None, 'C'..., ' '])) # 结果: ['A', 'B', 'C'] ---------------------------------------------------------------------...key参数用法: 即将元素先按key对应的函数一个个处理完之后在进行排序  下面,先将list的元素一个个绝对值处理,然后排序 sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序

    27430
    领券