<分区>
所以我目前正在学习C(计划之后学习C++)但是我遇到了一些困境。
- 在不知不觉中混用 C 和 C++ 的情况有多普遍?
- 如何避免混合使用 C 和 C++?
<分区>
所以我目前正在学习C(计划之后学习C++)但是我遇到了一些困境。
最佳答案
第一件事是决定您要学习哪种语言。在学习 C++ 之前学习 C 是没有必要的,反之亦然。
彻底学习您选择的语言。很少有以英语为母语的人会把德语和英语混在一起,反之亦然。编程语言也是如此——如果你很了解你选择的语言,你就不太可能将其他语言的东西混在一起,即使它们有相似之处。而且,随着时间的推移,您将能够识别方言。
阅读 C 和 C++ 之间的不兼容性。原始的 C++ 标准明确列出了它与之前的标准 C(ANSI C89 或 ISO C90)之间的所有兼容性。有很多关于不兼容性的免费资源 - 一些专注于 C 开发人员,一些专注于 C++ 开发人员。
配置您的编译器(或 IDE,或构建脚本),以便编译器检测您选择的语言的偏移。还将其配置为最大警告级别(实际上没有编译器是开箱即用的这种配置方式)并努力让代码永远不会触发编译器的最小警告。更好的是,使用多个编译器执行此操作。
如果没有上述步骤,下面的经验法则将不那么有效。毕竟,如果不了解潜在的推理,经验法则就不太有效。
一些经验法则,如果用 C 开发,应避免使用 C++ 特定的功能。
#include <stdio.h>
是 C,#include <iostream>
是 C++。bool
输入(和值 true
和 false
),然后是 #include <stdbool.h>
(C99 或更高版本)。int func(void)
意味着函数不需要
论点。const_cast
、reinterpret_cast
、
dynamic_cast
, static_cast
).使用普通的 C 风格转换(例如
(int *)
将某些东西转换成指向 int 的指针)一些经验法则,如果用 C++ 开发,可以避免特定于 C 的特性。
#include <stdio.h>
是 C,#include <iostream>
是C++。充分利用 C++ 标准库。bool
类型(和值 true
和 false
),
不要 #include <stdbool.h>
.这是因为 bool
, true
, 和 false
在 C++ 中是关键字,但在标准 C 中是宏。const_cast
, reinterpret_cast
, dynamic_cast
, static_cast
).关于c++ - 避免C和C++代码混用的做法或方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28379581/