0
点赞
收藏
分享

微信扫一扫

第二章 进入C++

橙子好吃吗 2022-03-11 阅读 83

带参数的main()

int main(int argc, char** argv){
  //Expressions...
  return 0;
}

假如一个C++文件有如上的main()函数,在编译过后我们就能通过命令行的方式运行它。

一个命令行由以下结构组成

  • 命令 参数1 参数2 参数3 参数n…

    命令指的就是编译过后的exe文件名字,之后向文件内部的main()传递参数。

    命令行将以上命令整理成一个字符串数组,也就是字符指针数组传给main()函数,同时计算出这个数组的大小。

    所以,argc指的是命令行中就几个元素(包括命令),argv指出所有参数和命令的位置。


#include

我们知道include会将头文件包括进来,但是头文件名字却有不同的格式。

C++旧式风格要求头文件后缀命为 .h 比如——iostream.h,但新式风格则将后缀名去掉了。

注意,如果你去掉了.h的后缀,不仅代表着形式的变化,还代表着你可以包含名称空间。

为什么会这样?

假设你同时包含了两个库

#include<A.h>
#include<B.h>

但是问题来了,两个库中有相同的函数 int C(),这样编译器就会不知道究竟该使用那个C函数进行编译。

为了解决这个问题,C++推出新标准——命名空间namespace

在编写文件时,将函数的实现放在namespace中,这样在引用各大头文件相同的函数的时候,我们可以通过在函数名称前面加上命名空间来区别函数。

#include<A>
#include<B>

int main(){
 A::c();
 B::c();
 //...
 return 0;
}

但是这样头文件格式就与之前的不同,所以新版本头文件命去掉了.h。在包括头文件的时候,函数不再全局变量中,需要使用using标识符使用命名空间才行。

举报

相关推荐

0 条评论