C++
xk_一步一步来
一步一步
展开
-
C++可变参数函数
什么是可变形参函数 在c++编程中,有时我们需要编写一些在源代码编写阶段无法确定参数个数,有时甚至无法确定参数类型的函数。 例如,一个求和函数。可以通过重载实现若干个数的和。int sum(int i1, int i2);int sum(int i1, int i2, int i3);...//还可以重载更多类似函数double sum(double d1, double d2)...转载 2019-12-11 16:35:37 · 4953 阅读 · 1 评论 -
普通union和匿名union
普通union:#include <iostream>using namespace std; void checkCPU(){ union MyUnion{ int a; char c; }test; test.a = 1; if (test.c == 1) cout << "little endian" <<endl; els...原创 2019-11-29 10:16:57 · 902 阅读 · 0 评论 -
gcc -E 预处理阶段做了哪些事?
前言1.预处理是啥?2.预处理阶段改变了啥?3.c文件预处理后是什么文件?要点命令:gcc -E hello.c -o hello.i 预处理是读取c源程序,对其中的伪指令(以#开头的指令,也就是宏)和特殊符号进行“替代”处理;经过此处理,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。这个文件的含义同没有经过预处理的源文件是相同的,仍然是C文件...转载 2019-11-19 16:44:35 · 492 阅读 · 0 评论 -
C/C++: 全局变量和局部变量
定义在函数内部的变量称为局部变量(Local Variable)在所有函数外部定义的变量称为全局变量(Global Variable)全局变量的默认作用域是整个程序,也就是所有的代码文件,包括源文件(.c文件)和头文件(.h文件)。如果给全局变量加上 static 关键字,它的作用域就变成了当前文件,在其它文件中就无效了。我们目前编写的代码都是在一个源文件中,所以暂时不用考...原创 2019-11-19 09:02:55 · 969 阅读 · 0 评论 -
宏定义的有效范围
在C/C++中,宏定义的有效范围被规定为当前文件内有效。“当前文件内有效”分为两种情况,一种是定义在头文件中,另一种是定义在源文件中。在头文件中的宏定义随着头文件一同被包含到源文件中时,此时宏定义在该源文件中有效,当头文件中的宏定义随着该头文件一起被包含到另一个头文件中,而这另一个头文件又被另一个源文件包含,则该宏定义在最终被包含的源文件中同样有效。当宏定义定义在源文件中时,只在当前源文件中...转载 2019-11-19 09:00:11 · 3423 阅读 · 1 评论 -
C++inline函数简介
1.inline函数简介inline函数是由inline关键字来定义,引入inline函数的主要原因是用它替代C中复杂易错不易维护的宏函数。inline(小心,不是online),翻译成“内联”或“内嵌”。意指:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。(函数的调用过程,由于有前面所说...转载 2019-06-03 09:36:13 · 1656 阅读 · 0 评论 -
C/C++程序编译过程详解
C/C++程序编译过程详解C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织,形成最终生成可执行代码的过程。过程图解如下:从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括...转载 2019-06-02 19:48:48 · 442 阅读 · 0 评论 -
gcc -I -L -l区别
https://www.cnblogs.com/alan666/p/8311984.html转载 2019-05-25 23:57:27 · 122 阅读 · 0 评论 -
gcc -lm -ldl是什么意思?----包含动态链接库
到书上出现gcc -lm 的选项,甚是不解,在网上查阅了一些资料,访问了一些论坛整理下。初学linux和gcc,C代码调用math.h中的函数有问题,如sqrt函数。若如sqrt(3.0)则可以编译通过并运行正常,若如sqrt(n),这里n是定义好的double型变量,则不能编译通过,错误信息为:undefined reference to 'sqrt'。像 sqrt(3.0); 这种调用,...原创 2019-05-25 22:00:40 · 2540 阅读 · 0 评论 -
C++ 多线程
https://www.runoob.com/cplusplus/cpp-multithreading.html转载 2019-05-24 12:07:18 · 142 阅读 · 0 评论 -
C++的STL中集合(set)的使用说明
文章转载自:http://www.cnblogs.com/yaoyueduzhen/p/4536929.htmlset,顾名思义,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。头文件:#include常用操作:begin() 返回set容器的第一个元素的地址end() 返回set容器的最后一个元素地址clear() ...转载 2019-05-24 12:05:30 · 833 阅读 · 0 评论 -
C语言实现时间差计算
在很多情况下,为了评判某个算法,函数的优劣,特别是比较同一个功能的两个函数的效率高低时,我们经常通过计算耗费时间作为判断标准。C语言中有两个相关的函数用来计算时间差,分别是:time_t time( time_t *t) 与 clock_t clock(void)头文件: time.h计算的时间单位分别为: s , ms time_t 和 clock_t 是...转载 2019-05-24 11:47:54 · 5867 阅读 · 0 评论 -
C语言 目标文件和可执行文件(ELF文件)
转自:https://www.jianshu.com/p/7c609b70acbd 1.C语言创建程序1.1C语言创建(分为4个步骤)编辑编译链接执行编辑:就是创建和修改C程序的源代码-我们编写的程序称为源代码。编译:就是将源代码转换为机器语言。编译器的输出结果成为目标代码,存放它们的文件称为目标文件。扩展名为.o或者.obj。(该部分编译是指汇编器编译汇编语言或者编译器编译...转载 2019-05-15 18:55:15 · 17189 阅读 · 3 评论 -
CMake与Make最简单直接的区别
转自:https://blog.csdn.net/weixin_42491857/article/details/80741060写程序大体步骤为:1.用编辑器编写源代码,如.c文件。2.用编译器编译代码生成目标文件,如.o。3.用链接器连接目标代码生成可执行文件,如.exe。但如果源文件太多,一个一个编译时就会特别麻烦,于是人们想到,为什么不设计一种类似批处理的程序,来批处理编译源文件呢,于是...转载 2019-05-15 18:45:57 · 199 阅读 · 0 评论 -
C++之fstream
转自:https://blog.csdn.net/BlackRose2013/article/details/7670820用fstream在指定文件流模式的情况下也可以自动新建文件:fstream oo(“aa.txt”,ofstream::out);在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符...转载 2019-05-08 10:47:42 · 1687 阅读 · 0 评论 -
extern使用方法总结!
Extern的问题在于不知道这个关键词出现的时候到底是声明还是定义? 二、详解1、函数的声明extern关键词是可有可无的,因为函数本身不加修饰的话就是extern。但是引用的时候一样需要声明的。2、全局变量在外部使用声明时,extern关键字是必须的,如果变量没有extern修饰且没有显式的初始化,同样成为变量的定义,因此此时必须加extern,而编译器在此标记存储空间在执行时...转载 2019-04-20 15:22:51 · 265 阅读 · 0 评论 -
什么是C++虚函数、虚函数的作用和使用方法
转自:http://c.biancheng.net/cpp/biancheng/view/244.html我们知道,在同一类中是不能定义两个名字相同、参数个数和类型都相同的函数的,否则就是“重复定义”。但是在类的继承层次结构中,在不同的层次中可以出现名字相同、参数个数和类型都相同而功能不同的函数。例如在例12.1(具体代码请查看:C++多态性的一个典型例子)程序中,在Circle类中定义了 ar...转载 2019-03-13 10:45:33 · 1153 阅读 · 5 评论