putc 作为宏观 ic C++实现
putc implemented as Macro ic C++?
我知道 C 语言中 putc(( 的宏实现,但在C++中是一样的吗?
您对cstdio
的实现。在大多数情况下,这实际上只是围绕stdio.h
的包装器,包装器在std
命名空间内声明,并且C
和C++
编译器共享相同的标准库用于C
函数。例如,VS2010 使用 stdio.h
表示C++
,其中putc
作为宏和函数实现,具体取决于环境和其他编译时定义。
版本的C++? C++83 (1983(? C++98 (1998(? C++11 (2011(?
C++98 和 C++11 规范依赖于 C 库函数的 ISO C 规范,除了将 stdio.h 重命名为 cstdio.h 并允许包含不带点 h 后缀之类的琐碎规范外,不会对它们施加额外的实现约束。
请参阅: C++98 规范
请参阅: C++11 规范
如果你对你的特定编译器感兴趣,请查看cstdio.h。
但是,如果我们深入挖掘并查看ISO C标准:"ISO/IEC 9899:1990"(C89/C90(,那么,我们发现它无法在网络上免费查看(甚至不是最终的标准草案(,因此继续使用C99(不是ISO C(,您会发现...
。C99(不是"ISO C"(说putc((可以作为一个宏实现,
参见: C99 规格
因此,如果您真的在 Obj-C++(使用 C99(中开发,那么 C99 是要考虑的相关规范,而不是 ISO C (C90(。 此外,由于 C99 允许编译器编写者决定是否将 putc(( 作为宏,您应该将其视为一种开放的可能性,并决定您是否真的关心了解正在过时的 C90 (ISO C( 规范(现在甚至 C11 (2011( 也已经过时了。
是的。 C 和 C++ 都使用 <stdio.h>
在我所知道的所有实现中具有相同方案。
- 如果没有malloc,链表实现将失败
- 如何在c++中实现处理器调度模拟器
- 如何在c++中使用引用实现类似python的行为
- 实现无开销push_back的最佳方法是什么
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 实现一个在集合上迭代的模板函数
- 我应该实现右值推送功能吗?我应该使用std::move吗
- 如何正确实现和访问运算符的各种自定义枚举器
- C++Union/Struct位域的实现和可移植性
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 在c++中实现LinkedList时,应出现未处理的错误
- 为左值和右值的包装器实现C++范围
- 使用模板进行堆栈实现; "name followed by :: must be a class or namespace"
- 使用GSoap实现ONVIF
- 在用于格式4的arm模拟器中实现功能时的一个问题
- 用于AVX的ln(x)的实现,m256
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 在C++中,如何在类和函数(可能是模板化的)的头中编写完整的实现
- std::random_device是如何实现的