没有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

分类: 计算机技术
推荐阅读:
Golang中 import cycle not allowed 的解决方法 在Go语言中,在使用import导入相应的包时,你可能会碰到 import cycle not allowed 这样的问题,出现这样的问题是你的包没有规划好,导致包相互依赖;
C语言isalpha()函数:判断字符是否为字母 isalpha()函数是C语言中的一个标准库函数;用于判断一个字符是否为字母(a-z或A-Z);如果参数c是一个字母(不区分大小写),则返回非0值,否则返回0;
MySQL ABS() 绝对值函数 ABS(x) 函数返回x的绝对值,如果x为NULL则返回NULL;
Python实现switch语句,没错!是Switch语句 Python中是没有switch语句的;条件判断只能使用if…else…这样的语句;但是伟大的劳动人民是非常有头脑的,我们总有办法。
SQL基本语法 SQL遵循一些独特的规则,基本语法如下:SQL不区分大小写。但我们通常将SQL关键字以大写形式编写,以便于区分;
Rust实现冒泡排序算法(Bubble Sort) 本文将使用Rust语言实现冒泡排序算法;