为什么c ++代码必须包含在函数中?

jos*_*ird 6 c++ python

作为c ++的新手,来自python,我不确定为什么c ++不允许函数之外的代码(在全局命名空间中?).看起来在调用main()或者甚至声明其他函数之前进行一些初始化可能会有用.(我不是想与编译器争论,我只想知道以这种方式实现它的思考过程.)

Car*_*rum 13

当你运行一个python程序时,解释器会在它执行时从上到下运行它.在C++中,这不会发生.编译器将所有函数构建到一小撮机器代码中,然后链接器将它们连接起来.在运行时,操作系统调用您的main函数,一切都从那里开始.在这种情况下,函数之外的代码是没有意义的 - 它什么时候运行?