![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
招财酷炫猫
长期招财
展开
-
C++封装一个IO类
// IOHelper.h#pragma once#include <iostream>#include <string>class IO {private: IO(); ~IO();public: // 输出字符串到屏幕 static void Output(std::string str, bool endl = true); // 获取一行输入 static bool Input(std::string &原创 2020-11-27 14:54:23 · 203 阅读 · 0 评论 -
统计C++代码行数
find . "(" -name "*.cpp" -or -name "*.h" ")" -print | xargs wc -l在项目目录下执行以上命令,统计C++的.h和.cpp文件中的代码行数。原创 2020-11-25 18:01:05 · 2522 阅读 · 0 评论 -
关于进程和线程
为什么一台计算机服务器可以同时处理数以百计,以千计的计算任务呢?这里依靠的是操作系统的 CPU 分时共享技术。如果同时有很多个进程在执行,操作系统会将 CPU 的执行时间分成很多份,进程按照某种策略轮流在 CPU 上运行。由于现代 CPU 的计算能力非常强大,虽然每个进程都只被执行了很短一个时间,但是在外部看来却好像是所有的进程都在同时执行,每个进程似乎都独占一个 CPU 执行。所以虽然从外部看起来,多个进程在同时运行,但是在实际物理上,进程并不总是在 CPU 上运行的,一方面进程共享 CPU,所以需要原创 2020-11-07 23:36:02 · 87 阅读 · 0 评论 -
函数调用时发生了什么?
我们以如下代码示例,描述函数调用过程中,栈的操作过程:void f(){ int x = g(1); x++; //g函数返回,当前堆栈顶部为f函数栈帧,在当前栈帧继续执行f函数的代码。}int g(int x){ return x + 1;}每次函数调用,操作系统都会在栈中创建一个栈帧(stack frame)。正在执行的函数参数、局部变量、申请的内存地址等都在当前栈帧中,也就是堆栈的顶部栈帧中。如下图所示:当 f 函数执行的时候,f 函数就在栈顶,栈帧中存储着 f 函数的局部原创 2020-11-07 23:27:52 · 669 阅读 · 0 评论 -
一个程序是如何运行起来的?
我们写的软件是文本格式的代码,这些代码不能直接运行,需要使用编译器编译成操作系统或者虚拟机可以运行的代码(可执行代码),它们都被存储在文件系统中。不管是文本格式的代码还是可执行的代码,都被称为程序,程序是静态的,安静地呆在磁盘上,什么也干不了。要想让程序处理数据,完成计算任务,必须把程序从外部设备加载到内存中,并在操作系统的管理调度下交给 CPU 去执行,去运行起来,才能真正发挥软件的作用,程序运行起来以后,被称作进程。进程除了包含可执行的程序代码,还包括进程在运行期使用的内存堆空间、栈空间、供操作系统原创 2020-11-07 23:24:24 · 2408 阅读 · 0 评论 -
Unix查看gcc/g++的默认include路径
`gcc -print-prog-name=cc1` -v`gcc -print-prog-name=cc1plus` -v或者:gcc -x c -v -E /dev/nullgcc -x c++ -v -E /dev/null原创 2020-11-06 12:07:41 · 207 阅读 · 0 评论 -
不同编译器下C++基本数据类型的字节长度
#include <stdio.h>int main() { printf("sizeof( char ): %zd\n", sizeof(char)); printf("sizeof( short int ): %zd\n", sizeof(short int)); printf("sizeof( int ): %zd\n", sizeof(int)); printf("sizeof( float ): %zd\n", sizeof(float));原创 2020-08-18 18:33:10 · 724 阅读 · 0 评论 -
C++函数模板
#include<iostream>using namespace std;template <class T>void printArray(const T *array, int count) { for (int i=0; i< count; i++) { cout << array[i] << " "; } cout << endl;}int main() { const原创 2020-08-15 14:28:32 · 84 阅读 · 0 评论 -
C语言可变参数(va_arg,va_list,va_start,va_end)
#include <stdio.h>#include <stdarg.h>//void va_start(va_list arg_ptr, prev_param);//功能:以固定参数的地址为起点确定变参的内存起始地址,获取第一个参数的首地址.//va_list 类型的变量,va_list arg_ptr//这个变量是指向参数地址的指针,因为得到参数的地址之后,再结合参数的类型,才能得到参数的值。//void va_end(va_list arg_ptr);//将原创 2020-07-26 22:01:02 · 379 阅读 · 0 评论 -
C语言string.h中的memcpy(), memmove(), memset()等函数
#include <stdio.h>#include <string.h>//void* memchr(const void* str, int c, size_t n) //在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置。//返回一个指向匹配字节的指针,如果在给定的内存区域未出现字符,则返回 NULL。void test_memchr(){ const char str[] = "http://www.baidu原创 2020-07-24 18:42:32 · 295 阅读 · 0 评论 -
C语言stdlib库中的malloc和realloc
#include<stdio.h>#include<stdlib.h>#include<string.h>//void *malloc(size_t size) //分配所需的内存空间,并返回一个指向它的指针。若失败,则返回NULL//char* strcpy(char* dest, const char* src) //把 src 所指向的字符串复制到 dest。//如果目标数组 dest 不够大,而源字符串 src 的长度又太长,可能会造成缓冲溢出的原创 2020-07-24 17:20:25 · 452 阅读 · 0 评论 -
大整数相乘——两个不超过100位的整数相乘
#include <iostream>#include <cstring>using namespace std;int main(){ char sz1[100], sz2[100]; cin >> sz1 >> sz2; int len1 = strlen(sz1); int len2 = strlen(...原创 2020-04-21 14:18:28 · 845 阅读 · 0 评论 -
C语言--万年历
#include#include//判断是否是闰年int leap(int year){ if(year%4==0&&year%100!=0) return 1; else if(year%400==0) return 1; else return 0;}//返回某年某月的天数int monthdays(int year, int原创 2014-11-07 14:38:05 · 843 阅读 · 0 评论 -
C语言画空心菱形
#include int main(){ int i,j,k; int n=3; for(i=1; i { for(j=1; j printf(" "); for(k=1; k { if(k!=1&&k!=2*i-1)原创 2014-11-01 23:17:59 · 3020 阅读 · 0 评论 -
C语言日期倒计时
#include#include//判断是否是闰年int leap(int year){ if(year%4==0&&year%100!=0) return 1; else if(year%400==0) return 1; else return 0;}//返回某年某月的天数int monthdays(int year, int原创 2014-11-08 00:58:27 · 2786 阅读 · 1 评论 -
Visual Studio 2017快捷键
作者:tongqingliu 转载请注明出处:http://www.cnblogs.com/liutongqing/p/7048639.html Visual Studio 2017快捷键Ctrl+Shift+L: 删除当前行Ctrl+M,M: 隐藏或展开当前嵌套的折叠状态Ctrl+M,L: 隐藏或展开所有的折叠状态Ctrl+K,Ctrl+C: 注释Ctrl+K,Ctrl+U: 取消注释Ct原创 2017-06-19 14:49:29 · 7805 阅读 · 0 评论 -
C++引用和指针
作者:tongqingliu 转载请注明出处:C++引用和指针C++引用引用的基本用法:int a = 12;int &b = a; // b指向a,b是a的引用,b是a的别名下面看一个实例:#include<iostream>#include<vector>using namespace std;int main(){ int val = 123; int &re原创 2017-06-19 20:23:46 · 260 阅读 · 0 评论 -
C++之const限定符
作者:tongqingliu 转载请注明出处:C++之const限定符const初始化const的特点: - 用const加以限定的变量,无法改变。 - 由于const对象定义之后就无法改变,所以必须对其进行初始化。 - const对象的常量特征仅在尝试改变它的时候表现出来,其他时候和变量无异。const初始化:const int bufSize = 512; //bufSize无法再原创 2017-06-19 22:03:33 · 400 阅读 · 0 评论 -
CentOS7安装高版本gcc
CentOS7安装高版本gcc下载从hust镜像站下载gcc源码包。http://mirror.hust.edu.cn/gnu/gcc/我选择的是gcc-8.3.0.tar.gz。cd mkdir softwarecd softwarewget http://mirror.hust.edu.cn/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gztar zxvf...原创 2019-07-31 16:32:08 · 2631 阅读 · 0 评论 -
C语言判断你活了多少天
#include#include//判断是否是闰年int leap(int year){ if(year%4==0&&year%100!=0) return 1; else if(year%400==0) return 1; else return 0;}//返回某年某月的天数int monthdays(int year, int原创 2014-11-08 00:39:00 · 1537 阅读 · 4 评论