pycharm 可以编译c代码吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pycharm 可以编译c代码吗?相关的知识,希望对你有一定的参考价值。
参考技术Apycharm不能编译c代码,pycharm是专门用来编译Python的。
Pycharm特性
1、高度可定制的和可插拔的
2、提供了智能代码完成
3、提供了代码检查功能
4、有突出的错误提示和快速修复
5、带有自动化代码重构和丰富的导航功能
6、内置了很多开发工具,如集成调试器和测试运行器、Python分析器、一个内置的终端|与主要的VCS和内置的数据库工具集成等
7、提供了多种Web开发工具和框架,特定的模板语言,如javascript、TypeScript、CoffeeScript、Node.js、html/CSS等
8、还提供了Matplotlib和NumPy等科学工具库
更多Python知识,请关注Python视频教程!!
这段代码可以编译吗? [复制]
【中文标题】这段代码可以编译吗? [复制]【英文标题】:Can This Code Compile? [duplicate] 【发布时间】:2011-07-18 12:34:58 【问题描述】:可能的重复:C++ void return type of main()What is the proper declaration of main?
简单的问题,真的。
我和我的朋友正在阅读我们应该在下学期听到的教授的 Powerpoint 幻灯片。这将是一门Java课程。由于某种原因,他有这个 C++ 代码 sn-p
#include <iostream.h>
main ()
cout << "Hello, World\n";
我告诉我的朋友,“不,这不适用于任何现代 C++ 编译器。”
我现在的问题是,这可以编译吗?
【问题讨论】:
你试过了吗? 更好的副本是What is the proper declaration ofmain()
?,但我想它仍然不是完全副本。
【参考方案1】:
这还值得质疑吗?为什么要编写极端案例 C/C++?遵守标准有什么问题? main()
是程序的入口点,操作系统需要程序的返回码。现在有人争论void main()
是否可以接受,但为什么还要为它辩护呢?只需使用 int main()
并成为一个编写好代码的快乐小伙子:
#include <iostream>
int main(int argc, char* argv[])
std::cout << "Hello World!\n";
return 0;
我用这个启动每个程序(没有硬件!然后),从来没有任何问题。
【讨论】:
【参考方案2】:这不是标准的 C++。对于这么短的一段代码,问题列表相当长……可能是因为它来自很久以前和一个旧的不合格编译器。
包含头的正确名称是 #include <iostream>
,.h
在 ANSI 标准化期间被删除。
类型必须在 C++ 中明确说明。您不能声明没有返回类型的函数并获得默认的int
(即 C,而不是 C++)。
main 的标准签名是:int main()
和 int main( int argc, char** )
(实现可以提供额外的参数,但返回类型必须是 int
)
cout
定义在std
命名空间内,除非添加using
,否则不能在没有限定的情况下使用。
适当的 C++ 中的等效代码是
#include <iostream>
int main()
std::cout << "Hello world\n";
【讨论】:
【参考方案3】:这将编译,尽管任何体面的编译器都应该发出警告。由于您使用的是#include <iostream.h>
,编译器假定这是旧代码并以向后兼容的模式编译它。在我的机器上,gcc 说:
In file included from /usr/include/c++/4.2.1/backward/iostream.h:31,
from oldcpp.cpp:1:
/usr/include/c++/4.2.1/backward/backward_warning.h:32:2: warning:
#warning This file includes at least one deprecated or antiquated header.
Please consider using one of the 32 headers found in section 17.4.1.2 of the C++
standard. Examples include substituting the <X> header for the <X.h> header for C++
includes, or <iostream> instead of the deprecated header <iostream.h>.
To disable this warning use -Wno-deprecated.
但它仍然可以很好地编译它。在运行代码时,我得到了预期的结果:即:
Hello, World
【讨论】:
不应在任何符合标准的编译器中编译。 C++ 不允许隐式返回类型,并且 main 的签名返回int
。许多编译器仍然允许过时的 .h 头文件,但缺少的返回类型应该是一个显示停止器。话又说回来,g++ 似乎默认接受它,但会用 -Wall 或 -pedantic 发出警告
这有一个很好的理由。尽管根据标准 C++ 这不正确,但这将是有效的代码预标准化。为了防止真正的旧代码被破坏,大多数编译器仍应在编译时发出警告,除非明确不这样做。
@dribeas:允许符合标准的编译器编译非标准代码,前提是它们发出诊断信息。所以说它“不应该编译”是不正确的。它不应该干净地编译。【参考方案4】:
当然可以。
例如,假设<iostream.h>
是具有以下内容的标头:
#include <iostream>
using std::cout;
#define main int main
【讨论】:
绝对允许#define
main
到别的地方吗?
@Mark:当然。它只是一个标识符;除非它被用作全局命名空间中的函数名,否则它作为标识符并没有什么特别之处。
或者“iostream.h”的最后一行当然可以是int
;-)
@Steve:哦,这是一个更好的主意!以上是关于pycharm 可以编译c代码吗?的主要内容,如果未能解决你的问题,请参考以下文章