C++
恋天的风
这个作者很懒,什么都没留下…
展开
-
C++中的引用
#include<iostream>using namespace::std;int main(int argc,char *argv[]){ int intOne=0; int &r_intOne=intOne; intOne=5; cout<<intOne<<endl; cout<<r_intOne<&...原创 2019-01-12 20:37:25 · 127 阅读 · 0 评论 -
C++对C语言的扩展(二)
(一)C++中的const1)C语言与C++中的const 比较:1° C语言中const变量是只读变量,有自己的存储空间2° C++中的const常量可能分配存储空间,也可能不分配存储空间 C语言中的const#includeint main(){ // C语言中 const修饰的变量是一个 常变量,本质还是变量,有自己的地址空间 const int...转载 2019-03-06 10:29:08 · 156 阅读 · 0 评论 -
C/C++中#define宏定义的作用域
#include <iostream>using namespace std;void t(void){ #define a 10}int main(){ cout << a<<endl; return 0;}如上代码编译,打印输出结果为10。由此可见#define的作用域是文件作用域,在定义之后的位置使用都有效。改变其...原创 2019-03-08 15:47:53 · 2766 阅读 · 0 评论 -
C++系统学习网站
http://www.runoob.com/cplusplus/cpp-tutorial.html原创 2019-03-08 15:50:36 · 245 阅读 · 0 评论 -
C++中枚举类型enum,结构体struct实例
#include <iostream>using namespace std;typedef enum T{ A, //默认第一个参数为0 B=8,//第一个参数之间与第二个参数之间用逗号隔开 C //最后一个不加逗号,指定的数下一个参数加1,即本列中C的值为9}GG; //加分号struct H{ int year; char name[10];...原创 2019-03-08 17:06:33 · 1170 阅读 · 0 评论 -
STM32中的断言
#ifdef USE_FULL_ASSERT/** * @brief The assert_param macro is used for function's parameters check. * @param expr: If expr is false, it calls assert_failed function which reports * ...转载 2019-03-08 18:31:49 · 385 阅读 · 0 评论 -
函数可重入性及编写规范
一、可重入函数1)什么是可重入性?可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。2)可...转载 2019-03-03 21:50:36 · 673 阅读 · 0 评论 -
C语言面试题
1.请问这种定义结构体正确吗?如果有问题,问题在哪儿。struct a { int x; char y; struct a z; struct a *p;}答:错误有两点。1.不能在结构体声明中定义结构体变量(struct a z);2.}后面没有加分号(;).以下为正确做法。struct a { int x; char y;...原创 2019-03-03 19:53:37 · 280 阅读 · 0 评论 -
三目运算符在C和C++编译器中的不同
#include <iostream>using namespace std; //在C语言中 表达式的结果 放在什么地方 寄存器//1 // 在C语言中, 表达式的返回值 是变量的值// 在C++中, 表达式返回的是变量的本身 //2 如何做到的//让表达式返回一个内存空间 ..内存首地址 指针//在C语言中 如何 实现 c++的效果 //3 本质 ...转载 2019-03-11 10:31:21 · 182 阅读 · 0 评论 -
STRUCT_OFFSET( s, m )宏
#define STRUCT_OFFSET( s, m ) ( (UINT8)( & ((s *)0) -> m ) ) /* 定义获取结构成员相对偏移地址的宏 */如上宏的意义,获取结构体S中元素M,相对于首元素的偏移量。#include <stdio.h>#define STRUCT_OFFSET(s,m) ( (int)(&...原创 2019-03-11 15:52:04 · 758 阅读 · 0 评论 -
C++中define与const的区别
C++中不但可以用define定义常量还可以用const定义常量,它们的区别如下:用#define MAX 255定义的常量是没有类型的,所给出的是一个立即数,编译器只是把所定义的常量值与所定义的常量的名字联系起来,define所定义的宏变量在预处理的时候进行替换,在程序中使用到该常量的地方都要进行拷贝替换;用const float MAX = 255; 定义的常量有类型名字,存放在内存的...转载 2019-03-08 09:23:16 · 978 阅读 · 0 评论 -
c++对C语言的扩展(一)
(一) C++对C的加强:1)命名空间:为什么要引入命名空间这个概念:一个中大型软件往往由多名程序员共同开发,会使用大量的变量和函数,不可避免地会出现变量或函数的命名冲突。当所有人的代码都测试通过,没有问题时,将它们结合到一起就有可能会出现命名冲突。例如小李和小韩都参与了一个文件管理系统的开发,它们都定义了一个全局变量 fp,用来指明当前打开的文件,将他们的代码整合在一起编译时,很明显编...转载 2019-03-06 10:06:11 · 251 阅读 · 0 评论 -
C++之namespace命名空间
#include "iostream"//包含C++的头文件using namespace std;//使用命名空间std标准的命名空间(这个命名空间中定义了很多标准定义)namespace namespaceA{ int a=10;}//定义命名空间后没有分号namespace namespaceB{ int a=20; namespace namespaceC { ...原创 2019-03-06 00:07:39 · 217 阅读 · 0 评论 -
C++之分别用面向对象和面向过程的思想求解圆的面积
#include "iostream"//包含C++的头文件using namespace std;//使用命名空间std标准的命名空间(这个命名空间中定义了很多标准定义)class mycrircle{ public : double m_r; double m_s; void set_r(double r) { m_r=r; ...原创 2019-03-05 01:28:57 · 396 阅读 · 0 评论 -
[转]C++中引用(&)的用法和应用实例
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要...转载 2019-01-12 20:45:25 · 144 阅读 · 0 评论 -
用C++中的引用和指针分别实现swap函数
#include<iostream>using namespace::std;void swap1(int a,int b);void swap2(int *a,int *b);//调用时实参为变量的地址即指针void swap3(int &a,int &b);//调用时实参为变量本身,形参是变量的别名即引用int main(){ int a=3; ...原创 2019-01-12 23:21:45 · 3595 阅读 · 0 评论 -
C++内联函数(C++ inline)详解
使用函数能够避免将相同代码重写多次的麻烦,还能减少可执行程序的体积,但也会带来程序运行时间上的开销。函数调用在执行时,首先要在栈中为形参和局部变量分配存储空间,然后还要将实参的值复制给形参,接下来还要将函数的返回地址(该地址指明了函数执行结束后,程序应该回到哪里继续执行)放入栈中,最后才跳转到函数内部执行。这个过程是要耗费时间的。另外,函数执行 return 语句返回时,需要从栈中回收形参和局...转载 2019-01-12 23:35:15 · 204 阅读 · 0 评论 -
C++默认参数的函数
C++中允许为函数提供默认参数,又名缺省参数。 使用默认参数时的注意事项: ① 有函数声明(原型)时,默认参数可以放在函数声明或者定义中,但只能放在二者之一double sqrt(double f = 1.0); //函数声明double sqrt(double f) //函数定义{ // .... } ② 没有函数(原型)时,默认参数在函数定义时...转载 2019-01-13 17:36:53 · 422 阅读 · 1 评论 -
C++默认参数函数例程
#include<iostream>using namespace::std;void foo(int i,int j=5,int k=10);int main(int argc,char *argv[]){ foo(20); foo(20,30); foo(20,30,40); return 0;}void foo(int i,int j,int k){...原创 2019-01-13 18:29:35 · 132 阅读 · 0 评论 -
C++函数重载例程
1 #include<iostream> 2 using namespace ::std; 3 int square(int x); 4 float square(float y); 5 double square(double x); 6 int main() 7 { 8 square(5); 9 square(1.5); 10 squar...原创 2019-01-13 19:16:12 · 197 阅读 · 0 评论 -
头文件中extern “C”的理解
C语言的. h头文件常会看到如下做法:#ifdef __FUNC_H_#define _FUNC_H_#ifdef __cplusplus__extern "C" {#endif#include<stm32f10x.h>int foo(char ,int );#ifdef __cplusplus__}#endif#endif开始看别人的代...原创 2019-01-13 19:33:06 · 1621 阅读 · 0 评论 -
C++函数模板例程
1 #include<iostream> 2 using namespace::std; //有分号 3 template < typename T> //没有分号 4 5 T abs(T x) 6 { 7 return x<0 ? (-x):x; 8 9 } 10 11 int main() 12 {...原创 2019-01-13 19:55:18 · 178 阅读 · 0 评论 -
(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack)
(深入理解计算机系统) bss段,data段、text段、堆(heap)和栈(stack) bss段: bss段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。 bss是英文Block Started by Symbol的简称。 bss段属于静态内存分配。 data段: 数据段(data segment)通常是指用来存放...转载 2019-01-22 17:36:42 · 308 阅读 · 0 评论 -
C++之hello world
#include "iostream"//包含C++的头文件using namespace std;//使用命名空间std标准的命名空间(这个命名空间中定义了很多标准定义)void main(){ //标准输出 黑屏幕 //左移操作符 在C++里面 功能的增强,即C++语言操作符重载 //endl \n //打印到屏幕并回车换行 cout<&l...原创 2019-03-05 00:06:13 · 114 阅读 · 0 评论 -
./ 当前目录 ../ 父级目录 / 根目录
./当前目录../ 父级目录/ 根目录原创 2019-03-12 09:54:47 · 3036 阅读 · 0 评论