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

分类: 计算机技术
推荐阅读:
使用Python求取前n个自然数的总和 给一个自然数n,使用Python求取前n个自然数的总和;
Python检查一个数是奇数还是偶数 本文将使用Python检查一个数是奇数还是偶数;偶数是能被2所整除的整数,若不是,那它就是奇数;奇数初以2的余数是1;
Rust实现字符串sha1、sha256、sha512加密 本文将在Rust语言中使用sha1、sha256、sha512等安全散列算法对字符串进行加密;
Python all()函数详细教程 all()函数只接受一个可迭代的类型参数;如果该迭代器的所有元素为True或该迭代器为空,则返回True,否则返回False;
Linux删除所有与扩展名不匹配的文件 在Linux系统下,当你想删除某个文件夹下没有指定扩展名的所有文件时,你可以使用这条命令来实现,它将会删除目录下所有与扩展名不匹配的文件:
Rust panic宏的用法和示例 在Rust中,当你使用panic宏时,表明程序遇到了一个不可恢复的错误,因此需要立即停止执行并打印错误信息;