没有main()函数的C语言程序

有两种方法可以不添加main()函数来运行C语言程序,第一种用#define预处理指令,第二种是使用-nostartfiles编译选项;

使用#define预处理指令

这种方法严格来说不能说没有main()函数;因为编译器在预处理阶段会将下列代码中的func替换成main再进行编译;

#include <stdio.h>

#define func main

void func(){
    printf("Hello World");
}

使用-nostartfiles编译选项

在编译时使用-nostartfiles编译选项时,编译器将避免标准链接;

#include <stdio.h>

void func(){
    printf("hello world");
}

以上代码在编译时添加-nostartfiles编译选项也能成功编译并能成功运行。

gcc test.c -nostartfiles

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/c-program-without-main-function.html

分类: 计算机技术
推荐阅读:
Rust爬取网页上的所有链接 要在Rust中爬取网页上的所有链接,可以使用一些Rust的库,例如reqwest和scraper。
Python id()函数 id()是Python内置函数之一,用于返回给定对象的唯一标识符(即对象在内存中的地址)。具体来说,id()函数返回一个整数,该整数代表给定对象在内存中的地址。因为每个对象在内存中都有一个唯一的地址,所以id()函数返回的值也是唯一的。
PySide6 使用QIcon为按钮添加图标 在PySide6中为按钮添加图标,可以使用QIcon类来加载图标文件,并使用QPushButton类的setIcon()方法将图标设置给按钮;
#![allow(unused)] 的作用 #![allow(unused)] 是 Rust 编程语言中的一个指令。这个特定的指令用于消除编译器关于未使用代码或变量的警告。
Golang获取CPU物理核心数 在Go语言中,可使用runtime包中的NumCPU()函数获取CPU的物理核心数;
Linux终端重用上一条命令的参数 在Linux系统下,当你想使用上一条命令所用的参数,你可以通过这一条命令实现: