C语言允许以下划线开头的函数存在
2016-02-04 23:12
459 查看
首先,C++里关于下划线的问题是源于C语言,因为C++允许用extern “C”来修饰代码以C语言语法方式编译。然后说C语言里的下划线:C语言确实允许以下划线开头的函数存在,实际上你用一个下划线开头的函数名或者变量是没问题的,但有可能会发生命名冲突。凡是以两个或一个下划线开始,后面紧跟着一个大写字母的标识符,不管它出现在哪里,都是保留给编译程序或标准库函数使用的。此外,凡是以一个下划线开始,后面不管跟着什么内容的标识符,如果它出现在文件范围内(即它不是出现在一个函数内),那么它也是被保留的。如果你用一个保留的标识符来作一个变量的名称,结果是没有定义的(程序可能无法编译,或者可以编译但会崩溃)。即使你能非常幸运地找到一个目前还没有被你的编译程序或函数库使用的标识符,你也应该记住这样的标识符是保留起来供将来使用的。因此,最好还是避免使用以下划线开始的变量名或函数名。举例说明:VC里getch函数不是一个标准库函数,因此,它的名字是_getch,大多数编译器都把非标准库、但又是编译器自己提供的库函数以下划线开头。另外,也有编译器的main函数在编译完成以后,名字是_main,如果你自己写了一个函数叫_main,那么编译器可能不知道最终该链接哪个。所以,你可以理解为:编译器需要预留一些名字,为了方便起见,大多数编译器预留的名字都是以下划线开头的,久而久之就形成了标准。虽然下划线开头也可以用,但不推荐使用,因为容易造成名字冲突。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法