文档章节

C语言的入口函数不一定叫main

 宁哥实战课堂
发布于 2017/08/31 17:13
字数 414
阅读 16
收藏 0
点赞 0
评论 0

C语言的入口程序好像都被固定好了叫“main”但是不一定哦。

先写个程序:#include<stdio.h>

#include<stdlib.h>

int main()

{

printf("俄罗斯方块---《C语言,好爽》2017年录 By 宁哥");

system("pause");

return 0;

}

C语言的入口函数不一定叫main

但我现在运行一个C语言图形化程序:

C语言的入口函数不一定叫main

看到了提示错误;

你可能认为这不叫“main”啊,但是即使改为main,也不对;同时,不叫“main”,同样可以对!

这样的修改就OK了:

C语言的入口函数不一定叫main

C语言的入口函数不一定叫main

C语言的入口函数不一定叫main

改为:

C语言的入口函数不一定叫main

结果OK了:

C语言的入口函数不一定叫main

这就说明叫不叫main,其实不是永恒不变的。

那么这是什么原因呢?这完全由操作系统怎么调用决定的。

很简单的一个道理,比如我事先写好了调用“add”函数,那么你在写函数体的时候名字就必须叫add,而我如果改成叫"add2"的函数,你在写函数体的时候就必须写成“add2”,同样的道理,操作系统在某种情况下找main函数,此时你就应该写"main"的函数名,如果操作系统在其他的情况下找“WinMain”或者“WinMain2”的时候,你自然就应该把入口函数写成“WinMain”或者“WinMain2”了。那么这里写成"main"不行,写成“WinMain”却可以,就不难理解了。

本例是在写《C语言,好爽》2017年版的“俄罗斯方块”项目中遇到的道理,希望对C语言初学者有用。

总结:C语言的入口函数不一定叫“main”,叫什么那得看操作系统去找什么...透过现象看本质,你会学的更轻松...

© 著作权归作者所有

共有 人打赏支持
粉丝 5
博文 64
码字总数 74049
作品 0
长沙
其他
C语言的入口函数不一定叫main

C语言的入口程序好像都被固定好了叫“main”但是不一定哦。 先写个程序:#include #include int main() { printf("俄罗斯方块---《C语言,好爽》2017年录 By 宁哥"); system("pause"); retu...

ningcaichen66 ⋅ 2017/09/24 ⋅ 0

架构编译器的感悟

这所谓的编译器就是将c语言代码编译为机器代码的,先将C编译为汇编代码,再由汇编器将汇编代码编译为机器代码,CPU执行的是机器代码 突然发觉好像很多书都这么说,很多人也这么说,于是很自然...

xyh12344 ⋅ 2015/12/12 ⋅ 0

深入理解JFinal框架之自己动手写一个^_^

1.首先要知道什么叫RESTful: 2.什么了什么是RESTful后,我们就开始动手做一个自己的MVC框架吧。这里我们利用Servlet3.0的的特性来做,(连web.xml都省了,好像现在的人都不怎么喜欢xml配置,...

dreamers ⋅ 2013/05/13 ⋅ 5

Linux学习笔记(os)

计算机组成: 存储器:内存和外存 (CPU一般会有缓存L1 L2甚至L3,一级缓存几十k到几百k (分数据Cache和指令Cache,与CPU同频),二级缓存几百k到几m(现在一般为CPU内置,与CPU同频,若外置...

赵-猛 ⋅ 2016/01/10 ⋅ 0

windows程序设计自学笔记(一)

本周开始自学windows编程,选的教材是《windows程序设计第五版》(珍藏版),没钱买书,只能下了pdf的书籍来看。 《windows程序设计第五版》(珍藏版)共分3个大部分,分别是:1)基础知识[...

赵西元 ⋅ 2012/12/13 ⋅ 0

java和c的本质--最重要的是启动

java很神秘吗?说什么跨平台,虚拟机之类的。c#很神秘吗?c很神秘吗?操作系统呢?cpu呢?其实这些都不神秘,以前不懂操作系统的时候,看见个多线程就跟看见个神似的,现在呢?linux内核随便...

晨曦之光 ⋅ 2012/04/10 ⋅ 0

windows 下 nasm, tcc 编译的 helloworld

这段代码很早以前写过, 今天想起来来了,故再次写一下 section .datahello db "hello world!", 0xa, 0 section .text global main; // 说明程序的入口点,这个可以随便取任意合法的标号, mai...

MtrS ⋅ 2015/01/18 ⋅ 0

OC-语法:static,extern,const修饰符,静态变量,局部变量,全局变量

一。C语言中的static的作用 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)第一个作用:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函...

水一样的人儿 ⋅ 2015/12/29 ⋅ 0

python中__name__的意义以及作用

首先定义了一个test.py的文件,然后再定义一个函数,并在函数定义后直接运行: 运行test.py结果: 然后继续创建一个main.py的文件,程序如下: 执行main.py文件,结果如下: 这里打印了两次,...

oldpan ⋅ 2017/09/24 ⋅ 0

Ubuntu 16.04下使用gcc输出汇编的.0文件为可执行文件时出现:`_start'被多次定义

错误如下: `_start'被多次定义/usr/lib/gcc/x8664-linux-gnu/5/../../../x8664-linux-gnu/crt1.o:(.text+0x0):第一次在此定义/usr/lib/gcc/x8664-linux-gnu/5/../../../x8664-linux-gnu/c......

easonjim ⋅ 2017/07/25 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

对于程序员的招聘问题,作为软件人的一些吐槽和建议

作为软件人,找工作有时候似乎挺苦逼的。 说真的,让我去掉前面这句中“似乎”二字吧。就是苦逼!很多人都曾抱怨处在招聘的一方很糟糕——我们没有任何可靠的方式来甄别会写代码并且写得好的...

老道士 ⋅ 28分钟前 ⋅ 0

HDFS原理学习

一、概述 1、 Hadoop整合了众多的文件系统,首先提供了一个高层的文件系统抽象org.apache.hadoop.fs.FileSystem。然后有各个文件系统的实现类。 2、Hadoop是JAVA编写的,不同文件系统之间的交...

cjxcloud ⋅ 32分钟前 ⋅ 0

Linux下MySQL表名不区分大小写的设置方法(抄袭别人的)

Linux下MySQL表名不区分大小写的设置方法 MySQL表名不区分大小写的设置方法 在用centox安装mysql后,把项目的数据库移植了过去,发现一些表的数据查不到,排查了一下问题,最后发现是表名的大...

随风而浮沉 ⋅ 37分钟前 ⋅ 0

ubuntu下安装宋体simsun

sudo cp simsun.ttc /usr/share/fonts cd /usr/share/fonts sudo chmod 644 simsun.ttc 更新字体缓存: 代码: sudo mkfontscale 代码: sudo mkfontdir 代码: sudo fc-cache -fsv 安装chrome扩......

wangxuwei ⋅ 38分钟前 ⋅ 0

利用 ssh 传输文件

Linux 下一般可以用 scp 命令通过 ssh 传送文件: #把服务器上的 /home/user/a.txt 发送到本机的 /var/www/local_dir 目录下scp username@servername:/home/user/a.txt /var/www/local_dir...

大灰狼时间 ⋅ 48分钟前 ⋅ 0

web3j教程:android和java程序员如何使用web3j开发区块链以太坊

如何使用web3j为Java应用或Android App增加以太坊区块链支持,本教程内容即涉及以太坊中的核心概念,例如账户管理包括账户的创建、钱包创建、交易转账,交易与状态、智能合约开发与交互、过滤...

智能合约 ⋅ 今天 ⋅ 0

web3j开发java或android以太坊智能合约快速入门

web3j简介 web3j是一个轻量级、高度模块化、响应式、类型安全的Java和Android类库提供丰富API,用于处理以太坊智能合约及与以太坊网络上的客户端(节点)进行集成。 可以通过它进行以太坊区块链...

笔阁 ⋅ 今天 ⋅ 0

一起读书《深入浅出nodejs》-异步I/O

异步I/O “异步”这个名词其实很早就诞生了,但它大规模流行却是在Web 2.0浪潮中,它伴随着AJAX的第一个A(Asynchronous)席卷了Web。 为什么要异步I/O 关于异步I/O为何在Node里如此重要,这与...

小草先森 ⋅ 今天 ⋅ 0

JVM各种问题

1、如果启动什么都不设,会怎样? 先来看一个命令 [root@localhost bin]# java -XX:+PrintCommandLineFlags -version -XX:InitialHeapSize=29899008 -XX:MaxHeapSize=478384128 -XX:+PrintCo......

算法之名 ⋅ 今天 ⋅ 0

SAS笔记-宏2

宏是一种文本,一般来说其编译是在程序执行之前。 宏变量的创建 %let语句 %let macro_variables = text; %let是常见的宏变量建立方式,其编译就在执行前。如下例中,想要宏变量test等于数据集...

tonorth123 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部