没有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 sorted()函数 在 Python 中,sorted() 函数用于对序列进行排序。它可以接受多种类型的输入序列,包括列表、元组、集合和字典等。
使用sqlmap导致[CRITICAL] unable to connect to the target URL的原因 使用sqlmap工具进行扫描时,提示[CRITICAL] unable to connect to the target URL. sqlmap is going to retry the request(s);
Python实现线性搜索(linear search) 线性搜索(linear search)通过从第一个元素开始遍历,与列表中的每个元素进行比较,直到匹配到元素或全部匹配完毕为止;
如何防止WiFi被蹭网 本文将从攻击者的角度详细讨论一下WiFi密码是如何被知晓的,以及如何防范WiFi被蹭,可以这么说,就算告诉你我家WiFi密码,你也蹭不了我的网;
Windows下安装rust编译器详细教程 本文将介绍如何在Windows系统下安装Rust编译器。
禁用Visual Studio自动下载更新 近日,作者使用Visual Studio发现,Visual Studio会自己在后台下载更新内容,然后提醒你是否安装;因为Visual Studio的更新包体积庞大,不仅占用网络资源也会消耗磁盘性能,所以我决定禁用它;