【C++】HelloWorld
笔者使用的是Microsoft Visual Studio 2022社区版安装过程省略。
笔者使用的是Microsoft Visual Studio 2022社区版
安装过程省略
让我们来试着完成第一个程序吧
1.创建新项目
2.选择空项目
3.命名和位置自定义,然后点击创建即可
4.会自动生成“解决方案资源管理器”
5.源文件->添加->新建项:Main.cpp
6.输入代码
#include<iostream>
using namespace std;
int main(){
cout << "Hello World!" << endl;
cin.get();
}
7.右击“HelloWorld”->生成(Build)
8.选择控制台输出的路径(其实就是你设置的存放路径)跳转
9.双击运行"HelloWorld.exe"
让我们来了解一下这段代码吧
#include<iostream>
This is a preprocessor operator,everything that begins with the “#” symbol is a preprocessor operator.
这是一个预处理器操作符,所有以“#”符号开头的都是预处理器操作符。
First thing that happens when the compiler receives a source file is processing all the preprocessor operators.It happens right before compilation itself,that’s why it’s called “preprocessing”.
当编译器接收到源文件时,首先要处理所有的预处理器操作符。它发生在编译之前,这就是为什么它被称为“预处理”。
“#include” will find a file,in our case iostream,it will take the entire contents of that file and simply paste it into our code.
“#include”将找到一个文件,在我们的例子中是iostream,它会获取该文件的全部内容并将其粘贴到我们的代码中。
We connect iostream because we need to use the cout function,which prints information to the console.
我们连接iostream是因为我们需要使用cout函数,该函数将信息打印到控制台。
using namespace std;
使用命名空间std,具体请参看下面的链接
如果不写这一句,那么代码可以写成:
#include<iostream>
int main(){
std::cout << "Hello World!" << std::endl;
std::cin.get();
}
int main(){}
main() function is the entry point to our program.This means that when we launch our application,the first thing the computer will do is run the main() function.
Main()函数是程序的入口点。这意味着当我们启动应用程序时,计算机要做的第一件事就是运行main()函数。
essentially our code is executed line by line.
实际上,我们的代码是逐行执行的。
也就是说,程序会先执行 cout << "Hello World!" << endl;
再执行 cin.get();
主函数里只有这两行代码,所以当它们执行完成后,程序会结束
Those of you already familiar with functions know that the main() function returns an int,but we’re not returning anything here.This is because the main() function is a special case.You’re not required to return values of any type from main().If you don’t return anything,the system treats it as if you were returning 0.This applies ONLY main() functions.
熟悉函数的人都知道main()函数返回一个int,但这里我们什么都不返回。这是因为main()函数是一个特例。您不需要从main()返回任何类型的值。如果你没有返回任何东西,系统就会把它当作你返回的是0。这只适用于main()函数。
<<
In fact,those left-facing angle brackets that look like bitwise shift operators are overloaded operators,and you should think of them as functions.
实际上,那些看起来像位移位操作符的左尖括号是重载操作符,您应该将它们视为函数。
让我们来进行一些说明吧
项目中的每一个CPP文件都会被编译,但头文件不会被编译,头文件的内容在预处理时包含进来了。C++文件被编译的时候,包含进来的文件一起被编译了。因此我们有了一堆将要被编译的CPP文件,分别被编译器编译。每一个CPP文件都被编译成了一个目标文件(object file);VS中生成文件后缀是.obj
当我们有了这些CPP编译后生成的独立的obj文件后,我们需要把这些文件合并成一个执行文件,这就要用到链接器(Linker)了,它就是将所有的obj文件合并成一个exe文件。
单独编译可以按Ctrl+F7,而我们单独编译时不会进行链接
我们可以把输出文字的功能写成一个函数,如下:
#include<iostream>
using namespace std;
void Log(const char* message) {
cout << message << endl;
}
int main() {
Log("Hello World!");
cin.get();
}
有C语言基础的同学应该能理解
那如果我们把Log()函数单独放到一个CPP文件中呢?
就要在Main.cpp中对其进行声明,如下:
Log.cpp
#include<iostream>
using namespace std;
void Log(const char* message) {
cout << message << endl;
}
Main.cpp
#include<iostream>
using namespace std;
void Log(const char* message);
int main() {
Log("Hello World!");
cin.get();
}
这样程序也能正确运行,而功臣就是链接
对于编译器(Compiler)和链接器(Linker),我们后面会详细讲解
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)