
C/C++
风中1匹狼
Live is fucking movie
展开
-
C语言可变参数详解【转】
(转自:https://blog.youkuaiyun.com/longintchar/article/details/85490103?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158890188319725256728493%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%25...转载 2020-05-08 09:57:32 · 607 阅读 · 1 评论 -
利用sprintf和sscanf实现十六进制和十进制之间的相互转换【转】
(转自:https://blog.youkuaiyun.com/stpeace/article/details/13168851)#include <stdio.h> int main(){ char s[100] = {0}; sprintf(s, "%x", 15); printf("%s\n", s); // f char str[100] = "f"; int i...转载 2020-05-07 17:07:11 · 784 阅读 · 0 评论 -
逻辑左移、逻辑右移、算术左移、算术右移、循环左移、循环右移【转】
(转自:https://blog.youkuaiyun.com/u011070169/article/details/53894154)逻辑左移时,最高位丢失,最低位补0;逻辑右移时,最高位补0,最低位丢失;算术左移时,依次左移一位,尾部补0,最高的符号位保持不变。算术右移时,依次右移一位,尾部丢失,符号位右移后,原位置上复制一个符号位;循环左移时,将最高位重新放置最低位循环右移时,将...转载 2020-05-07 16:36:07 · 1049 阅读 · 1 评论 -
11条最全面的C/C++编码规范总结【转】
(转自:https://blog.youkuaiyun.com/zang141588761/article/details/50608736)对于不同的编程语言来说,具体的编码规范可以有很大的不同,但是其宗旨都是一致的,就是保证代码在高质量完成需求的同时具备良好的可读性、可维护性。例如我们可以规定某个项目的C语言程序要遵循这样的规定:变量的命名,头文件的书写和#include 等等。下面是一些广为采用...转载 2018-10-22 14:44:35 · 178 阅读 · 0 评论 -
C++标准库和标准模板库【转】
(转自:https://blog.youkuaiyun.com/rl529014/article/details/51154798)C++强大的功能来源于其丰富的类库及库函数资源。C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完成。这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢;(2)质量:标准库的都是经过严格测试的,正确性有保...转载 2018-10-21 14:26:32 · 402 阅读 · 0 评论 -
C++中基类的析构函数为什么要用virtual虚析构函数【转】
(转自:https://blog.youkuaiyun.com/iicy266/article/details/11906457)知识背景要弄明白这个问题,首先要了解下C++中的动态绑定。关于动态绑定的讲解,请参阅: C++中的动态类型与动态绑定、虚函数、多态实现正题直接的讲,C++中基类采用virtual虚析构函数是为了防止内存泄...转载 2018-10-21 13:52:08 · 156 阅读 · 0 评论 -
C++中的动态类型与动态绑定、虚函数、运行时多态的实现【转】
(转自:https://blog.youkuaiyun.com/iicy266/article/details/11906509)动态类型与静态类型静态类型是指不需要考虑表达式的执行期语义,仅分析程序文本而决定的表达式类型。静态类型仅依赖于包含表达式的程序文本的形式,而在程序运行时不会改变。通俗的讲,就是上下文无关,在编译时就可以确定其类型。动态类型是指由...转载 2018-10-21 13:31:25 · 200 阅读 · 0 评论 -
成员函数的重载、覆盖与隐藏(详细)【转】
(转自:https://blog.youkuaiyun.com/weixin_42205987/article/details/81569744)成员函数的重载、覆盖与隐藏成员函数的重载(overload)、覆盖/重写(override)与隐藏/重定义(hide)很容易混淆,C++程序员必须要搞清楚概念,否则错误将防不胜防。(重写——这个名词可能是指覆盖,也可能是指隐藏,在java和C++中有区别)...转载 2018-10-21 10:32:05 · 508 阅读 · 0 评论 -
C++各种构造函数的写法【转】
(转自:https://blog.youkuaiyun.com/baiyq369/article/details/54926983)构造函数 ,是一种特殊的方法 。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。(摘自百度百科构造函数)。...转载 2018-10-20 13:07:13 · 2602 阅读 · 0 评论 -
C/C++内存分配【转】
(转自:http://blog.51cto.com/jiuxiaotian/860844)1:c中的malloc和c++中的new有什么区别malloc和new有以下不同:(1)new、delete 是操作符,可以重载,只能在C++中使用。(2)malloc、free是函数,可以覆盖,C、C++中都可以使用。(3)new 可以调用对象的构造函数,对应的delete调用相应的析构函数。...转载 2018-10-12 22:10:24 · 404 阅读 · 0 评论 -
回调函数那些事儿【转】
(转自:http://www.cnblogs.com/ioleon13/archive/2010/03/02/1676621.html)实际工作中,对于回调函数一直是我不愿意去触碰的东西,一来由于被很多人搞得神秘兮兮的以为是很高深难懂的技术,二来在一般情况下通过互相包含类指针也能够解决问题,所以一直就不想去研究这个东东,最近一个项目中被经理逼着使用了回调函数,切切实实体会到了它的好处,代码中类...转载 2019-03-02 20:45:57 · 151 阅读 · 0 评论 -
C语言中的回调函数调用过程以及函数指针使用【转】
(转自:http://www.cnblogs.com/drfxiaoliuzi/p/5002772.html)回调函数比喻:你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店...转载 2019-03-02 20:18:35 · 322 阅读 · 0 评论 -
static作用(修饰函数、局部变量、全局变量)【转】
(转自:http://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html)在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两...转载 2019-02-26 12:32:25 · 143 阅读 · 0 评论 -
数组、链表、栈、队列和STL【转】
(转自:https://www.cnblogs.com/tpys/p/3568528.html)数组数组是一种最基本的数据结构,它是内存上的一块连续存储空间。正因如此数组的随机访问很方便。但数组也有其固有的限制,大小分配后不能改变。STL中的数组STL中的Array是静态数组模板,就是我们所说的数组。使用方法如下。std::array<int, 3>...转载 2018-11-16 13:23:48 · 285 阅读 · 0 评论 -
“栈”的典型应用—表达式求值(C语言实现)【转】
(转自:https://blog.youkuaiyun.com/yuluows/article/details/7657944)我们都知道算术四则运算的运算规则是:先乘除,后加减。从左到右计算先算括号内,再算括号外表达式组成任何一个表达式都有操作数、运算符和界定符组成。操作数即可以是常量,也可以是被说明为变量或常量的标识符。运算符可以分为算术运算,关系运算和逻辑运算符。...转载 2018-11-15 20:25:07 · 1130 阅读 · 0 评论 -
使用栈实现表达式求值(C++)【转】
(转自:https://blog.youkuaiyun.com/BestFSQ/article/details/55823298)算法基本思想如下:(1)首先将操作数栈opval设为空栈,而将'#'作为运算符栈opter的栈底元素,这样的目的是判断表达式是否求值完毕。(2)依次读入表达式的每个字符,表达式须以'#'结尾,若是操作数则入栈opval,若是运算符,则将此运算符c与opter的栈顶...转载 2018-11-15 21:15:35 · 2690 阅读 · 1 评论 -
栈在表达式计算过程中的应用【转】
(转自:https://blog.youkuaiyun.com/believe_s/article/details/76473908)栈在表达式计算过程中的应用 :建立操作数栈和运算符栈。运算符有优先级。规则:自左至右扫描表达式,凡是遇到操作数一律进操作数栈。当遇到运算符时,如果它的优先级比运算符栈栈顶元素的优先级高就进栈。反之,取出栈顶运算符和操作数栈栈顶的连续两个操作数进行运算,并将...转载 2018-11-15 19:45:51 · 259 阅读 · 0 评论 -
C语言环形缓冲fifo实现【转】
(转自:https://blog.youkuaiyun.com/humanspider1/article/details/80965513)#define BUFFSIZE 1024 * 1024 #define min(x, y) ((x) < (y) ? (x) : (y)) pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; ...转载 2018-11-12 17:10:05 · 398 阅读 · 0 评论 -
C语言中的__FILE__、__LINE__和__func__等预定义跟踪调试【转】
(转自:https://blog.youkuaiyun.com/qq_33706673/article/details/78628202)C语言中的__FILE__、__LINE__和__DATE__等都在头文件#include<stdio.h>中如果编译器不是标准的,则可能仅支持以上宏名中的几个,或根本不支持。记住编译程序也许还提供其它预定义的宏名。__LINE__ 及 __FI...转载 2018-11-12 13:53:04 · 2630 阅读 · 0 评论 -
C++ 中常见预定义宏的使用【转】
(转自:https://blog.youkuaiyun.com/hgl868/article/details/7058906)在标准C以及各中编译器中定义了一些对象宏, 这些宏的名称以"__"开头和结尾, 并且都是大写字符. 这些预定义宏可以被#undef, 也可以被重定义。 在ANSI C标准中定义了__FILE__,__LINE__...转载 2018-11-12 13:49:43 · 848 阅读 · 0 评论 -
调试技巧:封装printf打印调试信息和宏定义开关
/* #define DEBUG */#ifdef DEBUG #define DEBUG_ERR(format, ...) \ do{ \ printf("\r\n"); \ printf("FILE: "__FILE__", LINE: %05d: "format,__LINE__,##__VA_ARGS__); \ pri...原创 2018-11-12 12:12:08 · 1065 阅读 · 0 评论 -
用指针输出结构体数组【转】
(转自:https://wenku.baidu.com/view/6511f01477c66137ee06eff9aef8941ea76e4bac.html)#include <stdio.h> #include <string.h>#include <math.h> int main(void) { struct Student...转载 2018-11-12 10:48:30 · 3303 阅读 · 0 评论 -
C++ 多态【转】
(转自:https://blog.youkuaiyun.com/jackzhang_123/article/details/79519651)什么是多态?有哪些分类?答:多态是面向对象的重要特性之一,它是一种行为的封装,是同一种事物所表现出的多种形态,简单地说是”一个接口多种实现“有两种类型的多态性:编译时的多态性。编译时的多态性是通过重载来实现的。运行时的多态性。运行时的多态性是通过虚成员实...转载 2018-10-30 23:41:59 · 107 阅读 · 0 评论 -
C++多态问题集锦【转】
(转自:https://blog.youkuaiyun.com/lixungogogo/article/details/52187596?utm_source=blogxgwz0) 什么是多态答:多态是面向对象的重要特性之一,它是一种行为的封装,是同一种事物所表现出的多种形态,简单地说是”...转载 2018-10-30 23:41:42 · 140 阅读 · 0 评论 -
TCP连接实现 客户端——服务端 通信
客户端://客户端 client.c#include <stdio.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #include <arpa/inet.h> #include <sys/socket.h> #inc...原创 2018-10-30 23:40:52 · 305 阅读 · 0 评论 -
一个易错的面试题来加深对C++多态的理解【转】
(转自:https://blog.youkuaiyun.com/stpeace/article/details/77799724) 原题目程序比较长, 我来简化成核心的考察部分, 如下:#include <iostream>using namespace std; class A{public: virtual void x() { cout <<...转载 2018-10-23 11:26:56 · 172 阅读 · 0 评论 -
C++总结6——继承与多态的笔试题【转】
(转自:https://blog.youkuaiyun.com/wendy_keeping/article/details/75213671)1—————————————————#include <iostream>using namespace std;class Base{public: Base(int data):_ma(data) { ...转载 2018-10-23 11:26:39 · 215 阅读 · 0 评论 -
C++总结5——继承与多态【转】
(转自:https://blog.youkuaiyun.com/wendy_keeping/article/details/75212860)一、继承1.C++的继承继承有3种形式:私有继承、保护继承、公有继承,默认的继承方式是私有继承。通常使用 public 继承。不论哪种继承方式,派生类都是显示的继承类基的保护成员变量和函数和公有成员变量和函数,继承方式只是限定在派生类中这两...转载 2018-10-23 11:26:32 · 140 阅读 · 0 评论 -
C++总结4——内存泄露/资源泄露【转】
(转自:https://blog.youkuaiyun.com/wendy_keeping/article/details/75205781)内存泄露/资源泄露现象1.malloc/new动态申请的内存,忘记写free/delete,导致内存泄露。2.调用默认的赋值运算符重载函数,发生浅拷贝现象,导致内存泄露。如下图:3.在构造函数中new,但是程序运行过程中抛出异常,未调用析构函数...转载 2018-10-23 11:26:25 · 316 阅读 · 0 评论 -
C++总结1——指针和引用/数组的区别【转】
(转自:https://blog.youkuaiyun.com/wendy_keeping/article/details/75193772)1.指针和引有什么区别?(从反汇编角度回答)a.其实引用和指针本质上是一样的,他们的汇编指令都是两行。int a = 10;int *p = &a;//lea eax,[a] 将...转载 2018-10-23 11:26:18 · 122 阅读 · 0 评论 -
C语言中手把手教你动态内存分配【转】
(转自:https://blog.youkuaiyun.com/qq_29924041/article/details/54897204?utm_source=blogxgwz13)C语言中手把手教你动态内存分配动态内存分配常见的内存分配的错误先上一个内存分配的思维导图:便于联想想象,理解: 首先我们介绍一下内存分配的方式:1:在静态存储区域中进行分配 内存在程序编译的时候就已经...转载 2018-10-23 11:25:58 · 212 阅读 · 0 评论 -
又是考查内存对齐和指针理解, 简单东西。【转】
(转自:https://blog.youkuaiyun.com/stpeace/article/details/77800139)如下: 又是考查内存对齐和指针理解, 简单东西。#include <iostream>using namespace std; #pragma pack(4) struct X{ int a; char b[3]; short c; ch...转载 2018-10-23 11:25:33 · 134 阅读 · 0 评论 -
C++静态成员函数和静态成员变量【转】
(转自:https://blog.youkuaiyun.com/hackerose1994/article/details/50816817?locationNum=10&amp;fps=1)&nbsp; &nbsp; &nbsp; &nbsp; 在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不...转载 2018-10-23 11:25:06 · 289 阅读 · 0 评论 -
C++静态成员变量和静态成员函数使用总结【转】
(转自:https://blog.youkuaiyun.com/fanyun_01/article/details/51422357?utm_source=blogxgwz0)C++静态成员变量和静态成员函数使用总结:一.静态成员变量:类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/pr...翻译 2018-10-23 11:24:52 · 162 阅读 · 0 评论 -
delete 和 delete []的真正区别【转】
(转自:https://www.cnblogs.com/wangjian8888/p/7905176.html)c++中对new申请的内存的释放方式有delete和delete[两种方式,到底这两者有什么区别呢?1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解...转载 2018-10-22 10:17:59 · 262 阅读 · 0 评论 -
C++中派生类重写基类重载函数时需要注意的问题:派生类函数屏蔽基类中同名函数【转】
(转自:https://blog.youkuaiyun.com/iicy266/article/details/11906697)派生类可以继承基类中的非私有函数成员,当然也就可以继承其中非私有的被重载的函数。如下:【参考代码】class Base {public: void print() { cout << "print() in Base." << ...转载 2018-10-21 15:14:55 · 3489 阅读 · 0 评论 -
C/C++中extern关键字详解【转】
(转自:https://blog.youkuaiyun.com/big_bit/article/details/51595714?utm_source=blogxgwz1)一.extern修饰变量和函数在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。extern声明不是定义,即不分配存储空间。先来看一段代码/* basic_stdy....转载 2018-10-20 11:33:15 · 268 阅读 · 0 评论 -
C++标准库和标准模板库【转】
(转自:https://blog.youkuaiyun.com/rl529014/article/details/51154798)C++强大的功能来源于其丰富的类库及库函数资源。C++标准库的内容总共在50个标准头文件中定义。在C++开发中,要尽可能地利用标准库完成。这样做的直接好处包括:(1)成本:已经作为标准提供,何苦再花费时间、人力重新开发呢;(2)质量:标准库的都是经过严格测试的,正确性有保...转载 2018-10-19 00:13:57 · 225 阅读 · 0 评论 -
C++中explicit的用法【转】
(转自:https://blog.youkuaiyun.com/qq_35524916/article/details/58178072?utm_source=blogxgwz2)C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。1 是个构造;2 是个默认且隐含的类型转换操作符。所以, 有时候在我们写下如 AAA = XXX, 这样的代码...转载 2018-10-19 00:11:44 · 130 阅读 · 0 评论 -
标准模板库STL学习总结【转】
标准模板库就是类与函数模板的大集合。STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器。1、容器:容器是用来存储和组织其他对象的对象。STL容器类的模板在标准头文件中定义。主要如下所示①序列容器基本的序列容器是上面图中的前三类:关于三者的优缺点主要是:A:vector&amp;amp;lt;T&amp;amp;gt;...转载 2018-10-19 00:11:21 · 188 阅读 · 0 评论