gpt4 book ai didi

c - 如何根据 C11 使用二进制前缀?

转载 作者:太空狗 更新时间:2023-10-29 17:04:55 25 4
gpt4 key购买 nike

我目前开始使用C30(一个C 编译器,基于 GCC 来自 microchip 的 PIC24 设备),我出于好奇启用了 Strict ANSI 警告。首先,我不知道在 C11 中,像//这样的注释标记是“错误的”,而我应该使用/* blah blah */,但真正让我吃惊的是针对一行代码的警告。

“警告:使用非标准二进制前缀”

代码行是:

OSCCONbits.COSC = 0b000;

我在网上查看了 C11 (ISO/IEC 9899:2011) 的一份草案,但找不到任何有关 C 中二进制前缀的信息。http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

根据 C11,C 的正确二进制表示法是什么?

最佳答案

C 没有二进制常量。 (即使在 C11 中也不支持它们。)

他们被提议作为 C99 的补充,但该提议被拒绝了。

来自 C99 基本原理文档:

A proposal to add binary constants was rejected due to lack of precedent and insufficient utility.

您说您正在使用基于 gcc 的编译器,并且 gcc 支持二进制常量:它们是 C 语言的 GNU 扩展。

Integer constants can be written as binary constants, consisting of a sequence of 0 and 1 digits, prefixed by 0b or 0B. This is particularly useful in environments that operate a lot on the bit-level (like microcontrollers).

有关二进制常量的更多信息,请参见 gcc 页面:

http://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html

关于c - 如何根据 C11 使用二进制前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9014958/

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