C/C++语言本身
C/C++语言本身
佛道教主
修大乘佛法,能超亡者升天,能度难人脱苦,能解白冤之结,能消无妄之灾,能修无量寿身。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++ 不能用初始值设定项列表初始化非聚合错误
C++ 不能用初始值设定项列表初始化非聚合错误转载 2023-04-22 19:39:30 · 1321 阅读 · 0 评论 -
C++左值引用
C++左值引用原创 2023-04-22 19:33:33 · 169 阅读 · 0 评论 -
解读C++右值引用
右值引用原创 2023-04-22 19:29:35 · 1034 阅读 · 0 评论 -
C++ 虚函数表详解
前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数...转载 2019-06-28 21:08:26 · 706 阅读 · 0 评论 -
C++中private、public、protected修饰符访问权限问题
今天发现有这样两句话: 1. 基类的保护成员对于派生类的成员是可访问的。 2. 派生类的成员只能通过派生类对象访问基类的保护成员,派生类对一个基类对象中的受保护成员没有访问权限。这两句话看的太头晕了,其实作者应该是想表达:只有在派生类中才可以通过派生类对象访问基类的protected成员。看这样的代码:class Base{public: Base();private:...转载 2019-01-17 15:18:24 · 894 阅读 · 0 评论 -
算数转化之float的范围和int之间的关系
算数转化之float的范围和int之间的关系转载:http://www.cnblogs.com/luguo3000/p/3719651.html int与float是我们每天编程都用的两种类型,但是我们真的足够了解它们吗。昨天在博客园看到一个比较老的笑话: “昨天晚上下班回家,一民警迎面巡逻而来。突然对我大喊:站住!民警:int 类型占几个字节? 我:4 个。 民警:你可以走了。 ...转载 2018-12-13 23:53:46 · 1625 阅读 · 0 评论 -
C语言结构体的大小 — — 内存对齐和位域
C语言结构体对齐C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础,但一不小心就会弄错。写出一个struct,然后sizeof,你会不会经常对结果感到奇怪?sizeof的结果往往都比你声明的变量总长度要大,这是怎么回事呢?结合网上的资料和自己的编程实践,总结如下。首先考虑一个问题,为什么要设计内存对齐的处理方式呢?如果体系结构是不对齐的,成员将会一个挨一个存储,显...转载 2018-11-26 22:14:41 · 367 阅读 · 0 评论 -
数据类型对应字节数(32位,64位 int 占字节数)
数据类型对应字节数(32位,64位 int 占字节数)一、程序运行平台 不同的平台上对不同数据类型分配的字节数是不同的。 个人对平台的理解是CPU+OS+Compiler,是因为: 1、64位机器也可以装32位系统(x64装XP); 2、32位机器上可以有16/32位的编译器(XP上有tc是16位的,其他常见的是32位的); ...转载 2018-03-02 13:37:28 · 1012 阅读 · 0 评论 -
C语言常见错误中英文对照表
C语言常见错误中英文对照表 fatal error C1003: error count exceeds number; stopping compilation 中文对照:错误太多,停止编译 分析:修改之前的错误,再次编译 fatal error C1004: unexp...转载 2018-08-16 13:19:45 · 2757 阅读 · 0 评论 -
C / C++ 左移 右移 剖析
C / C++ 左移(<<) 右移(>>) 剖析例子1 : char a = 0xF0; int b = (int)a; int c = 0xFFFFFFFF; int d = c &l...原创 2018-08-18 14:18:26 · 1217 阅读 · 0 评论 -
大小端对比特位的影响
上一篇文章讲解了带位域的结构体,在从大端机(Big Endian)传输到小端机(Little Endian)后如何解析位域值。下面继续深入详解字节序,以及位域存储的方式。 (1) 我们知道,存储数字时,对小端机而言,数字的低位,存在低地址,高位存在高地址。大端机正相反。 (2) 读取的方式,也是一样的。对于小端机,读出的低地址位作为数字的低位。 (3) 此外Big-Endian/Little-En...转载 2018-06-23 21:35:19 · 2130 阅读 · 1 评论 -
比特序和字节序
软件和硬件工程师不得不处理字节及比特序问题,这个过程就像走迷宫。尽管最终我们能够走出来,但我们往往筋疲力尽。本文尝试对字节和比特序发挥影响力的领域,包括CPU,总线,设备及网络协议进行总结。我们深入细节期望对这个主题给出清晰的说明。同时,本文尽力从实际应用的角度给出指导和规则。字节序:大小端问题我们也许知道字的大小端问题。1980年,Danny Cohen提出了此问题。它描述的是如何在计算机系统中...转载 2018-06-23 21:16:10 · 540 阅读 · 0 评论 -
大小端-------位域
听到好几个朋友说到去一些公司做面试,总是遇到关于大小端、位段(或者叫位域)和内存对齐的考题,然后就不知所措了。虽然我认为很多开发根本就用不到这个,但是我认为很有必要学习理解这些知识点,因为它可以让你更了解C++的,了解程序在内存的运行情况,也能加深对计算机系统的理解。 声明:由于本文的代码会受到计算机环境的影响,故在此说明本篇博文中的程序的运行环境。 1、Micros...转载 2018-06-22 22:54:56 · 740 阅读 · 0 评论 -
大小端 -- 字符串
小端字节序和大端字节序中,区别在于地地址存低位还是高位的区别,字节序中的低位和高位仅针对大于1个字节的组合内存空间(自己定义的名词,就是值的大小是要多个内存单元组合而成,比如int是4个字节(32位或64位上),那么int类型的值就要4个内存单元组合得到)。内存的单位是字节,对于字符来说,char是1个字节,不受主机字节序和网络字节序的影响,在内存中就一个单元,没有前后之分。但是当是组合内存空间时...转载 2018-06-22 22:35:28 · 6184 阅读 · 1 评论 -
C/C++ ---namespace详解
一、为什么需要命名空间(问题提出) 命名空间是ANSIC++引入的可以由用户命名的作用域,用来处理程序中常见的同名冲突。 在 C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。 1、全局变量的作用域是整个程序,在同一作用域中不应有两个或转载 2017-08-19 14:40:12 · 752 阅读 · 0 评论 -
C/C++-----static详解
在C语言中,由于没有类的概念,所以没有静态成员一说,在c中static的作用主要有2个:一是隐藏功能,对于static修饰的函数和全局变量而言 二是保持持久性功能,对于static修饰的局部变量而言。 并且,因为存放在静态区,全局和局部的static修饰的变量,都默认初始化为0。C语言中使用静态函数的好处: 静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免转载 2017-08-19 14:39:23 · 339 阅读 · 0 评论 -
C++虚函数基础
我也碰到过你类似的迷惑,特别是书上举的例子,让你越来越迷惑。事实上,你根本就无法想象那些作者的无知和愚蠢,举的垃圾例子给你感觉就是对知识的侮辱! 好了,下面我用一句话给你概括虚函数的作用,再用一个例子让你去体会。 1、基于向上类型转换,基类通过虚函数可以对多个子类相似的功能实现统一管理。 2、例子: A为基类,B、C为A的同级子类。virtual只需在基类中标识一次,子类无需重复标识。 class转载 2017-08-19 14:38:10 · 279 阅读 · 0 评论 -
C++ virtual 多态详解
实现多态有两种方法:1、覆盖***********覆盖是指子类重新定义父类的虚函数的做法。 2、重载***********重载是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。 分析:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%重载是在同一个类中相同的返回类型和方法名,但是参数的转载 2017-08-19 14:33:09 · 721 阅读 · 0 评论
分享