长清网站建设价格,越城网站建设公司,注册公司,网站备案专员1. 规则1.1 原文1.2 分类 2. 关键描述3. 代码实例 1. 规则
1.1 原文
Rule 5.1 External identifiers shall be distinct Category Required Analysis Decidable, System Applies to C90, C99
1.2 分类
规则5.1#xff1a;外部标识符应该是不同的 Required必须类规范。
2.… 1. 规则1.1 原文1.2 分类 2. 关键描述3. 代码实例 1. 规则
1.1 原文
Rule 5.1 External identifiers shall be distinct Category Required Analysis Decidable, System Applies to C90, C99
1.2 分类
规则5.1外部标识符应该是不同的 Required必须类规范。
2. 关键描述
该规则要求不同的外部标识符在实现所施加的限制内是不同的。
distinct的定义取决于正在使用的C语言的实现和版本:
•在C90中最低要求是外部标识符的前6个字符是重要的但它们的大小写不需要是重要的;
•在C99中最低要求是外部标识符的前31个字符是有效的每个通用字符或相应的扩展源字符占用6到10个字符。
在实践中许多实现提供了更大的限制。例如C90中的外部标识符通常是区分大小写的并且至少前31个字符是有效的
如果两个标识符仅在非重要字符上不同则行为未定义。如果考虑可移植性则使用标准中指定的最小限制来应用此规则将是谨慎的。长标识符可能会损害代码的可读性。虽然许多自动代码生成系统会生成较长的标识符但将标识符长度保持在远低于此限制的水平是有充分理由的。注意:在C99中如果扩展源字符出现在外部标识符中并且该字符没有对应的通用字符则标准没有指定它占用多少字符。
3. 代码实例
例1规范中例程 在下面的示例中所有定义都出现在同一个翻译单元中。所讨论的实现在外部标识符中支持31个重要的区分大小写的字符
/* 1234567890123456789012345678901********* Characters */
int32_t engine_exhaust_gas_temperature_raw;
int32_t engine_exhaust_gas_temperature_scaled; /* Non-compliant */
/* 1234567890123456789012345678901********* Characters */
int32_t engine_exhaust_gas_temp_raw;
int32_t engine_exhaust_gas_temp_scaled; /* Compliant */例2 在下面的不兼容示例中该实现在外部标识符中支持6个不区分大小写的重要字符。两个翻译单元中的标识符不同但其有效字符并不明显
/* file1.c */
int32_t abc 0;
/* file2.c */
int32_t ABC 0;