gpt4 book ai didi

c - 为什么不属于实现的名称仍然使用双下划线命名约定?

转载 作者:行者123 更新时间:2023-11-30 21:33:38 25 4
gpt4 key购买 nike

双下划线不是为实现保留的吗?我指的是类似 this 的东西。人们似乎一直忽视这个约定。

代码如下:

signed int __cdecl upload_exploit() {
int device_type;
signed int payload_address;
int free_address;
int deviceerror;
char *chunk_headers_ptr;
...

Here是定义约定的地方:

In addition to the names documented in this manual, reserved namesinclude all external identifiers (global functions and variables) thatbegin with an underscore (‘_’) and all identifiers regardless of usethat begin with either two underscores or an underscore followed by acapital letter are reserved names. This is so that the library andheader files can define functions, variables, and macros for internalpurposes without risk of conflict with names in user programs.

编辑:

虽然这是一个不好的例子,但我的问题的精神仍然存在:我见过程序员“错误地”使用双下划线。它承载着怎样的内涵呢?他们想传达有关功能/关键字的什么信息?

最佳答案

人们写了很多 C 语言无效的东西。编译器缺乏严格性是他们能够逃脱惩罚的主要原因。但就您链接的示例而言,代码似乎没有做任何错误。它不是在保留的命名空间中非法定义标识符,而是使用标准 header 中的实现提供的实现定义的标识符。

关于c - 为什么不属于实现的名称仍然使用双下划线命名约定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com