初次写博客记录自己的C++学习之旅,算是自己的一个小笔记本吧!希望能坚持写下去,不断输出,提高自己。
C++是C语言的扩展, 同时,
1.更加关注语言性能
与底层硬件紧密结合;程序员能对变量的生命周期做到精确控制;不需要为没有使用的语言特性付出代价如虚函数的使用;使用了语言特性不等于付出运行成本,因为有的被编译器提前编译好了的。
(搞不懂没关系,只要知道C++很牛就行了)
2.引入了大量的特性,便于工程实现
三种编程范式:面向过程 面向对象 泛型编程
函数重载 异常处理 引用等。
C++最初是1998年开始 03年改进 11年引入了许多新特性,14、17、20对标准进一步迭代。
但是C++11应用更加广泛吧。
//-g 带调试信息的可执行文件
g++ -g test.cpp
//-O[n]优化代码
// -O0 不做优化 -O1 默认优化 -O2除了默认优化还有一些额外优化 -O3进一步优化
//注意优化后的代码 不能调式 一般在确认无误后使用优化 提高运行效率
g++ O2 test.cpp
// -l 指定库文件 -L指定库文件路径
g++ -L/home/lib/mytestlib -lmytest test.cpp
// 链接/home/lib/mytestli下的mytest.so库
//-I 指定头文件搜索目录
g++ -Imyinclude test.cpp
//-std=c++11 使用c++11标准
g++ -std=c++11 test.cpp
// -o 指定输出文件名
g++ test.cpp -0 test
// man gcc 可查看gcc文档
01C++的编译/链接
流程:预处理 编译 汇编 链接
mkdir tmp
cd tmp
touch test.cpp
vim test.cpp
#include
using namespace std;
int main()
{
cout<<"This is a test!"<
预处理常见的问题
预处理即将源文件和头文件转化为翻译单元的过程,所以就必须防止头文件的循环包含。
// main.cpp
#include"swap1.h"
// swap1.h
#include"swap2.h"
//swap2.h
#include"swap1.h"
在main中 包含swap1 swap1包含swap2 swap2又包含swap1三者循环包含 编译报错
处理1
头文件加上#pragma once (防止头文件重复包含)
#include
#pragma once
#include"swap1.h"
int main()
{
.......
}
处理2
#ifndef SWAP2_H
#ifdef SWAP2_H
........
.......
#endif
持续更新,,,,,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)