Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >在C标识符中使用下划线的规则是什么?

在C标识符中使用下划线的规则是什么?
EN

Stack Overflow用户
提问于 2021-09-07 00:22:49
回答 1查看 263关注 0票数 1

在C(和其他语言)中,对变量和函数的名称使用前缀和后缀是很常见的。特别是,人们偶尔会看到在“适当”标识符之前或之后使用下划线,例如_x_y变量或_print等。但是,避免以下划线开头的名称也是一种普遍的智慧,以避免与C标准库实现发生冲突。

那么,在哪里和哪里可以使用下划线呢?

EN

回答 1

Stack Overflow用户

发布于 2021-09-07 00:29:48

C标准,图书馆一章,保留某些标识符(重点是地雷):

C17 7.1.3保留标识符

-所有以下划线和大写字母或下划线开头的标识符总是保留给任何用途。 -以下划线开头的所有标识符始终保留为在普通和标记名称空间中都具有文件范围的标识符。 -以下任何一款中的每一个宏名称(包括未来的库指示)都保留给指定的使用,如果包含任何相关的标头;除非另有明确说明(见7.1.4)。 -下列任何一款(包括今后的图书馆指示)和errno中具有外部链接的所有标识符始终保留作为外部链接的标识符使用。 -在下列任何一个子子句(包括未来的库指示)中列出文件范围的每个标识符都保留为宏名称,如果包含任何相关的标头,则保留为在同名空间中具有文件范围的标识符。

其中“保留给任何使用”意味着为编译器/标准库保留,请参见“保留任何用途”的意思是什么?“为实现保留”也意味着为编译器/标准库保留。

此外,未来图书馆指南C17.31保留了许多标识符--这是一个很大的章节,我只引用最值得注意的部分:

7.31.10以int或uint开头、以_t结尾的整数类型_t可以添加到头中定义的类型中。宏名以INT或UINT开头,以_MAX、_MIN或_C结尾,可以添加到标头中定义的宏中。 7.31.12通用公用事业 以str开头的函数名和小写字母可以添加到头中的声明中。 7.31.13字符串处理 以str、mem或wcs开头的函数名和小写字母可以添加到头中的声明中。

要直接回答你的问题:

那么,在哪里和哪里可以使用下划线呢?

严格地说,哪里都没有。您不应该声明以下划线开头的标识符,因为它们可能与标准库或语言关键字等发生冲突。尽管如上面粗体文本所暗示的那样,您可以在本地命名空间中使用一个下划线,后面跟着小写。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69084726

复制
相关文章
Linux在windows上共享目录
一、linux安装samba yum -y install samba 二、备份配置文件 cp /etc/samba/smb.conf /etc/samba/smb.conf.backup 三、添加访
静谧星空TEL
2021/04/27
4.4K0
Linux在windows上共享目录
在Windows系统上的Linux容器
ghplvh
2018/01/09
4.9K0
在 Linux or windows 上后台运行服务
  此时可以访问 http://ip:8000 验证服务是否成功启动了(详细操作见另一篇文章-Python 一行搭建文件服务器)
我是胖虎啊
2022/06/27
3.2K0
在 Linux or windows 上后台运行服务
在Windows上搭建Go开发环境
在Windows上搭建Go开发环境
乐百川
2018/01/09
1.5K0
在Windows上搭建Go开发环境
BML CodeLab重磅更新:在Windows上可原生Linux AI开发
自从微软发布 WSL2(Windows Subsystem for Linux 2)之后,机器学习开发者、数据科学家就可以在 Windows 上做原生 Linux 开发了。
用户1386409
2021/03/09
1.2K0
BML CodeLab重磅更新:在Windows上可原生Linux AI开发
Linux的GUI程序在Windows上使用
一,在linux机上安装xorg-x11-xauth 如果没装,启动GUI程序会提示Canno open display。 方法: yum install xorg-x11-xauth 二、打开linux服务器的sshd的X11转发功能: vi /etc/ssh/sshd_config 配置: X11Forwarding yes 三、在Windows客户端上安装X11 Server程序 Xming是运行于Windows下的X 服务器,下载Xming:http://sourceforge.net/pro
韩伟
2018/03/05
4.5K0
Linux的GUI程序在Windows上使用
快速在 Windows 上搭建 Jekyll 开发环境
发布于 2018-03-04 05:30 更新于 2018-08-12 06:50
walterlv
2018/09/18
1.1K0
快速在 Windows 上搭建 Jekyll 开发环境
在 Windows 上使用 Python 进行 web 开发
我们建议在生成 web 应用程序时在 WSL 上安装 Python。 Python web 开发的许多教程和说明都是针对 Linux 用户编写的, 并使用基于 Linux 的打包和安装工具。 大多数 web 应用还部署在 Linux 上, 因此, 这将确保你的开发环境与生产环境之间的一致性。
葡萄城控件
2019/08/03
6.9K0
Flutter在Windows上搭建Android开发环境
Flutter 是谷歌基于 Dart 语言开发的一款开源、 免费、跨平台的移动端UI 框架,可以让我们快速的在 Android 和iOS 上构建高质量 App,它最大的特点就是跨平台、 以及高性能。
越陌度阡
2020/12/16
1.5K0
Flutter在Windows上搭建Android开发环境
windows上开发linux程序完美环境搭建
然后启动安装centos即可,注意安装过程中,需要把网络配置固定IP,避免每次启动虚拟机IP飘走。
mingjie
2022/05/12
2.2K0
windows上开发linux程序完美环境搭建
怎样在Linux上开发vue项目
将node.js的node可执行可执行文件与npm链接所在目录添加到环境变量,在文件/etc/profile文件末尾添加以下内容
极客开发者
2022/01/18
2.1K0
怎样在Linux上开发vue项目
WampServer – 在 Windows 上轻松搭建 PHP 开发环境
WampServer 是一个 Windows 上的 Apache + PHP + MySQL 开发环境。作为一名 WordPress 主题开发者,我一直使用 WampServer 搭建本地 PHP 开发环境。 WampServer 的安装流程十分简单,一路 Next 就行。
慕白
2018/08/03
1.3K0
WampServer – 在 Windows 上轻松搭建 PHP 开发环境
Linux上搭建Git服务,客户端在Windows
服务器 CentOS Linux release 7.4.1708 (Core) + git(version 1.8.3.1) 客户端 Windows7 + git(Git-2.9.3.2-64-bit.exe)
飞狗
2018/12/18
3K0
如何使用Homebrew在Linux和Windows上安装软件
长期以来,Homebrew软件一直是Mac用户的便捷工具,但仅适用于Mac用户。 该应用程序增加了Linux风格的软件包管理,使用户可以轻松安装命令行实用程序。 现在,在2.0.0及更高版本中,该应用程序不再是Mac专有的。
用户8704998
2021/06/08
3.8K0
在Windows 10上安装TensorFlow及PyCharm开发环境[通俗易懂]
有时候在查看官方文档时,常常看到很多的分支,所以作为开发者我们都喜欢把最佳实践总结出来。下面一起来看看如何在Windows 10上安装一个TensorFlow和PyCharm开发环境。
全栈程序员站长
2022/09/27
1.6K0
在Windows 10上安装TensorFlow及PyCharm开发环境[通俗易懂]
在 Windows 上安装 Composer
(2) 选中PHP安装目录下的php.exe,PHP的安装路径在环境变量 Path 中,则会自动选中,否则需要手动选中
很酷的站长
2023/02/17
2.1K0
在 Windows 上安装 Composer
MongoDB - 在Windows上安装
1 下载MongoDB社区版, 下载链接 http://www.mongodb.org/downloads?_ga=1.129742796.1997610832.1481940266 2 安装Mong
我思故我在
2018/05/11
2.3K0
在Windows上安装Jenkins
apache-tomcat/bin目录下的startup.bat在windows上启动。
清菡
2020/12/02
2.4K0
在Windows上安装Jenkins
在 Windows 玩 Linux!
之前了解过一些适用于linux的Windows子系统,最近又听人提起,于是在自己的Windows 10专业版上安装了一个Ubuntu。运行起来还真方便,以后在windows上开发Linux程序就不需要安装桌面虚拟化应用了。下面讲下具体的步骤。
Rookie
2020/04/23
4.2K0
在 Windows 玩 Linux!
怒删虚拟机,FPGA开发新宠-几步在Windows上安装桌面化Linux
Linux上运行Vivado这类EDA工具要比Window上快很多,大概就是优化的问题,所以选择Linux上开发是一个比较好的选择(主要是免费)。国内习惯了Win系统,所以用Linux比较少,那么有没有既可以在Windows上做一些文档之类的编写办公,同时在Linux上做FPGA开发呢?
碎碎思
2023/02/14
2.1K0
怒删虚拟机,FPGA开发新宠-几步在Windows上安装桌面化Linux

相似问题

如何在gatling模拟中运行多个空手道特征文件?

126

如何在Python中将参数传递给类?

11

如何在Gatling脚本中将变量传递给.get方法

10

如何在laravel中将数组传递给特征?

16

如何在Gatling中将地图列表传递给pebble模板?

26
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文