C关键字typedef及argc,argv,env参数含义

简介: C关键字typedef--为C中各种数据类型定义别名. 在此插一点C知识 int main(int argc,const char *argv[],const char *envp[])主函数的红色部分参数含义 int argc--参数数目[argument count], int argv...

C关键字typedef--为C中各种数据类型定义别名.

在此插一点C知识

int main(int argc,const char *argv[],const char *envp[])主函数的红色部分参数含义

int argc--参数数目[argument count],

int argv--参数值[argument value],

const char *envp--传递系统环境变量.

在有些编译器中允许main()的返回类型申明为void,随编译器不会报错,但以不是c++语法,

linux/unix下的标准参数语法

int main(int argc,char *argv[],char **env[]){

}

argc:整数,用来统计你运行程序时送给main函数的命令行参数个数

打印程序运行时传递给程序的参数个数argc,

*argv[]:字符串数组,用来存放指向你的字符串参数的指针数组,每一个元素指向一个参数;
argv[0]指向程序运行的全路径名
argv[1]执行程序后的第一个字符串,argv[2]依次;
【注】argv[argc] = NULL;
**env:字符串数组,env[]的每一个元素都包含envvar=value形式的字符串
其中envvar味环境变量,value为envvar的对应值;

argc,argv,env是在main()函数之前被赋值的,编译器生成可执行文件,main()不是真正的入口点,而是一个标准的函数,这个函数名与具体的操作系统有关;
#include <stdio.h>

int main(int argc,char *argv[],char **env[]){

printf("%d\n",argc) //打印程序运行时共传递的参数个数;

while(argc)

  printf("%s\n",argv[--argc]);

  retuen 0;

}

 

到此返回文档主体C关键字 typedef定义数据类型 的别名

可以在以定义的别名基础上新定义别名,但请注意typedef定义的别名仅仅可以在当前C源程序中起作用,同时原数据类型是还可以使用的.

 

一般的typedef给一般数据类型或是像结构体等自定义数据类型定义别名的目的是为了使源程序代码简洁[eumn,point struct];

 

 

 

目录
相关文章
|
4月前
详细解读C++char类型函数
详细解读C++char类型函数
36 0
|
5月前
|
存储 编译器 项目管理
深入探索 CMake:揭秘非常规特殊变量${ARGN},${ARGV},${ARGV0}, ${ARGV1}等等
深入探索 CMake:揭秘非常规特殊变量${ARGN},${ARGV},${ARGV0}, ${ARGV1}等等
114 2
|
5月前
|
C++
无法将参数1从“const char [6]”转换为“char *”的解决方法
无法将参数1从“const char [6]”转换为“char *”的解决方法
|
5月前
error C2664: 不能将参数 1 从“const TCHAR [256]”转换为“const wchar_t *”
error C2664: 不能将参数 1 从“const TCHAR [256]”转换为“const wchar_t *”
119 0
|
C++
VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
177 0
VS:无法将“char *”转换为“const wchar_t *”/不能将参数从“const char []”转换为“const wchar_t *”
|
C语言 固态存储
可变参数宏__VA_ARGS__和...
__VA_ARGS__ 是一个可变参数的宏(gcc支持)。实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所代表的字符串。
2429 0
|
存储 安全 编译器
C++:宏定义(#define)和常量(const)的区别
在测试对矩阵进行 SVD 分解时,需要定义矩阵的行和列的大小,下面我们开始思考宏定义和常量之间有些什么样的分别。
595 0
C++:宏定义(#define)和常量(const)的区别