[ASM C/C++] C语言的main 函数
C语言有两种可能的运行环境
1. 独立(freestanding)
在独立环境中,C程序执行不需要操作系统的支持,因此只具有最小的链接库能力。
2. 宿主(hosted)
在宿主的环境中,C程序会在操作系统的控制下执行,并且会使用操作系统所提供的支持,具有完整的标准链接库能力。
为宿主环境而编译的程序必须定义一个名为main的函数,这是程序开始时调用的第一个函数。
main 函数的定义有两种形式:
int main(void){} // 没有参数, 返回int.
int main(int argc, char *argv[]){} // 两个参数,返回int .
另外许多C的实现还支持以下定义
int main(int argc, char *argv[], char *envp[]) //三个参数,一个int,两个char **, 返回int.
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h> /* 参数argc 和 argv 代表程序的命令行自变量
argc : argument count 值如果不是0,就是命令行中字符串的数量,程序本身名字也算在内。
argv : argument vecto 一个char指针数组,每个指针指向命令行中的字符串。
envp : 环境指针; 是一个指针数组,指向组成程序环境的字符串。C中可用getenv()函数取得这些环境变量。
*/
int main(int argc, char *argv[], char *envp[])
{
printf("argument count is: %d %s \n", argc, argv[]); for(int i=; i<argc; i++)
{
printf("the %d argument is: %s \n", i, argv[i]);
} for(int i=; envp[i] != '\0'; i++)
{
printf("the env argument is: %s \n", envp[i]);
} // get the env argument
char *env = getenv("USER");
printf("%s \n", env);
} 执行结果:
mac-abeen:asm_c abeen$ gcc arg.c
mac-abeen:asm_c abeen$ ./a.out
argument count is: 1 ./a.out
the env argument is: TERM_PROGRAM=Apple_Terminal
the env argument is: SHELL=/bin/bash
......
abeen
[ASM C/C++] C语言的main 函数的更多相关文章
- C语言的main函数到底该怎么写
公众号[编程珠玑]:专注但不限于分享计算机编程基础,Linux,C语言,C++,Python,数据库等编程相关[原创]技术文章,号内包含大量经典电子书和视频学习资源.欢迎一起交流学习,一起修炼计算机“ ...
- C#语言基础 Main 函数中的输出输入
C# 是一门面向对象的编程语言,保留了C C++等等强大功能,但是它与 Java 非常相似,有许多强大的编程功能,它是微软(Microsoft)专门为.NET应用而开发的一门语言. 也就是人与计算机 ...
- linux中c语言编程main函数和参数
linux下main函数的的标准调用函数的标准形式 int main(int char,char *argv[]) 在main函数的两个参数中,argc必须是整型变量,其是命令行的参数的数目,argv ...
- 详解C语言的main函数
如图所示:#include<stdio.h>这是一个头文件,包含的是C程序运行的C语言的库函数,只有包含了相关的头文件,在程序中才能调用.stdio表示输入输出控制.printf():就是 ...
- C#语言基础 Main 函数中变量 整型
在我们每次上网或者用电脑的时候,请输入你的xxx 或者你的名字(年龄/身高/学校/籍贯)是 在这里我们就要学到一些变量,就是不确定的东西 string a: //赋予变量 a ="内容& ...
- Bran的内核开发教程(bkerndev)-04 创建main函数和链接C文件
目录 创建main函数和链接C文件 PS: 下面是我自己写的 Win10安装gcc编译器 本节教程对应的Linux下的编译脚本 _main的问题 创建main函数和链接C文件 一般C语言使用mai ...
- C语言中main函数的参数
转自:http://blog.csdn.net/cnctloveyu/article/details/3905720 我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上, ...
- Linux C编程--main函数参数解析
我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数.C语言规定main函数的参数只能有两个, 习惯上这 ...
- c/c++中main函数参数讲解
参考地址: http://blog.csdn.net/cnctloveyu/article/details/3905720 我们经常用的main函数都是不带参数的.因此main 后的括号都是空括号.实 ...
随机推荐
- C# 关键字【转】
C#中的关键字 关键字是对编译器具有特殊意义的预定义保留标识符.它们不能在程序中用作标识符,除非它们有一个 @ 前缀.例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字. 下面是列 ...
- Model View
#include "dialog.h" #include "ui_dialog.h" #include<QtCore> Dialog::Dialog ...
- 解决国内npm依赖包安装慢的问题
可以通过 npm config set registry http://registry.npm.taobao.org命令设置镜像服务器为阿里巴巴镜像服务器,速度会快很多,亲测有效.
- 由于某IP大频率提交评论导致服务器宕机
早上突然收到dnspod的宕机通知(好久没收到了,有点手足无措). 服务器在上午10:40时达到85%.uptime显示cpu利用率达到35.不宕才怪. 按照之前的经验,应该是触发一个特别耗CPU的处 ...
- 两个有意思的模式在ECMAScript中的实现
简介 本篇文章对设计模式进行了筛选, 只列举两个有意思(坑)的设计实现, 如有错误愿闻其详. 构造函数 ECMAScript中的构造函数和其他语言的有那么点特别之处,可以认为, 一个函数, 如果被以n ...
- 使用css使textbox输入内容自动变大写
<style type="text/css"> input[type="text"] { text-transform:uppercase; } & ...
- WP8.1 侧边滑动Item
效果图 我看ios 和安卓上有好多类似的Item的效果,UWP上有微软官方的库,其中也有类似得效果,看样子WP8.1没有啊,顺便我的程序也是需要,我也就仿了一个. 具体思路是: 触摸控制GRId在CA ...
- ISO8583报文协议
最开始时,金融系统只有IBM这些大的公司来提供设备,象各种主机与终端等.在各个计算机设备之间,需要交换数据.我们知道数据是通过网络来传送的,而在网络上传送的数据都是基于0或1这样的二进制数据,如果没有 ...
- WPF 仪表盘 刻度盘 动态 加载中 开源
1. 表盘 参数可以设置, codeproject上写的.网址在这里. 源码里有demo,很详细. 源码在这里. 2. 动态Loading 截图效果跟实际有点不一样. 自己把源码写成 资源就好用了呗 ...
- 对bootstrap中confirm alert进行封装
HTML: <!-- system modal start --> <div id="ycf-alert" class="modal"> ...