标签: entry-point

main()真的是一个C++程序的开始吗?

C++标准中的$ 3.6.1/1节,

程序应包含一个名为main的全局函数,它是程序的指定开始.

现在考虑这段代码,

int square(int i) { return i*i; }
int user_main()
{ 
    for ( int i = 0 ; i < 10 ; ++i )
           std::cout << square(i) << endl;
    return 0;
}
int main_ret= user_main();
int main() 
{
        return main_ret;
}
Run Code Online (Sandbox Code Playgroud)

此示例代码执行我打算执行的操作,即进入main()应该是程序"开始" 的函数之前打印从0到9的整数平方.

我还用-pedantic选项GCC 4.5.0 编译它.它没有错误,甚至没有警告!

所以我的问题是,

这段代码真的符合标准吗?

如果它符合标准,那么它是否会使标准所说的无效?main()不是这个计划的开始!user_main()在执行之前执行main().

我知道要初始化全局变量main_ret,use_main()首先执行,但这是完全不同的事情; 关键是,它确实使标准中的引用语句$ 3.6.1/1无效,因为main() …

c++ program-entry-point standards-compliance entry-point

130
推荐指数
6
解决办法
2万
查看次数

是'int main;' 一个有效的C/C++程序?

我问,因为我的编译器似乎这么认为,即使我没有.

echo 'int main;' | cc -x c - -Wall
echo 'int main;' | c++ -x c++ - -Wall

Clang没有发出任何警告或错误,gcc只发出温和的警告:'main' is usually a function [-Wmain]但是只有在编译为C时才指定.指定a -std=似乎并不重要.

否则,它编译和链接很好.但在执行时,它立即终止SIGBUS(对我来说).

阅读(C)和C++中main()返回的(优秀)答案和快速的grep通过语言规范,这肯定会似乎对我来说,一个主要的功能是必需的.但是gcc -Wmain('main' 通常是一个函数)的冗语(以及这里的错误缺失)似乎可能暗示其他情况.

但为什么?是否有一些奇怪的边缘案例或"历史"用途?谁知道什么给了?

我想,我的观点是,我认为这应该是托管环境中的错误,是吗?

c c++ program-entry-point function entry-point

111
推荐指数
6
解决办法
9669
查看次数

C的main()函数的有效签名是什么?

C中主要功能的有效签名究竟是什么?我知道:

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

还有其他有效的吗?

c signature entry-point language-lawyer function-prototypes

58
推荐指数
4
解决办法
4万
查看次数

替换WPF入口点

WPF定义了自己的Main()方法.我应该如何用我自己的Main方法替换它(通常)打开WPF MainWindow(例如通过命令行参数添加非WPF脚本模式)?

.net wpf entry-point

54
推荐指数
4
解决办法
3万
查看次数

当孩子定义另一个时,Docker父图像的入口点会发生什么?

假设我有这个Dockerfile构建的Docker镜像:

FROM ubuntu
ENTRYPOINT ["parent-entry"]
Run Code Online (Sandbox Code Playgroud)

现在,我继承了使用此代码构建的子图像中的图像:

FROM parent
ENTRYPOINT ["child-entry"]
Run Code Online (Sandbox Code Playgroud)

据我测试,子图像的入口点会覆盖父图像中的入口点.

但由于我是Docker的新手,我对此并不确定.我的研究还没有得出令人满意的答案.以上假设是正确的吗?

inheritance entry-point docker

45
推荐指数
1
解决办法
9455
查看次数

如何用gcc改变C程序的入口点?

如何更改用gcc编译的C程序的入口点?
就像在下面的代码中一样

#include<stdio.h>
int entry()  //entry is the entry point instead of main
 {
   return 0;
 }
Run Code Online (Sandbox Code Playgroud)

c program-entry-point entry-point

27
推荐指数
3
解决办法
3万
查看次数

写或不写Haskell中的`module Main where`

Haskell 98规范说,程序的入口点,即函数main,应按惯例驻留在名为Main的模块中.但是,即使您没有module Main where在您编写的文件的顶部写入main,源代码也会编译,并且在您使用GHC时似乎正常工作.

问题是:

  1. 写作module Main where和不写作有什么区别?
  2. 哪一个更受欢迎?

haskell module entry-point

23
推荐指数
1
解决办法
5195
查看次数

我需要一个永远不会返回null的`Assembly.GetEntryAssembly()`的替代品

我需要找到托管代码执行开始的程序集.

// using System.Reflection;
Assembly entryAssembly = Assembly.GetEntryAssembly();
Run Code Online (Sandbox Code Playgroud)

这似乎是要走的路,但MSDN参考页面Assembly.GetEntryAssembly说明这个方法"[c]从非托管代码调用时返回null."

在这种情况下,我想知道哪个程序集是由非托管代码调用的.

有没有可靠的方法来做到这一点,即总是返回非空Assembly引用?

.net c# system.reflection entry-point

23
推荐指数
2
解决办法
1万
查看次数

Webpack,多个入口点Sass和JS

下面是我的webpack配置.此时文件加载此main.js入口点

import './resources/assets/js/app.js';
import './resources/assets/sass/main.scss';
Run Code Online (Sandbox Code Playgroud)

我可以在public/js文件中获取这两个文件,但我想在自己的文件夹中获取css和js.这可能吗?

var webpack = require('webpack');
var path = require('path');
let ExtractTextPlugin = require("extract-text-webpack-plugin");
var WebpackNotifierPlugin = require('webpack-notifier');

module.exports = {

    resolve: {
    alias: {
      'masonry': 'masonry-layout',
      'isotope': 'isotope-layout'
    }
  },

    entry: './main.js',
    devtool: 'source-map',
    output: {
        path: path.resolve(__dirname, './public'),
        filename: 'bundle.js'
    },

    module: {
        rules: [

         {  test: /\.js$/, 
                exclude: /node_modules/, 
                loader: "babel-loader?presets[]=es2015",

             },

            {
                test:/\.scss$/,
                use: ExtractTextPlugin.extract({
                    use: [{loader:'css-loader?sourceMap'}, {loader:'sass-loader', options: {
                    sourceMap: true
                }}],

                })
            },

            /*{
        test    : /\.(png|jpg|svg)$/,
        include : path.join(__dirname, …
Run Code Online (Sandbox Code Playgroud)

javascript sass entry-point webpack

23
推荐指数
3
解决办法
2万
查看次数

WinMain,main和Cll中的DllMain之间的区别

这三个函数之间有什么区别以及何时使用它们?

c++ windows winmain entry-point

20
推荐指数
2
解决办法
1万
查看次数