嵌入式--C++程序入门

Posted ⁢稚子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式--C++程序入门相关的知识,希望对你有一定的参考价值。

C++是在C语言基础上为支持面向对象程序设计而研制的一个通用程序设计语言。

第一个程序

#include <iostream>

using namespace std;

int main(void)

    cout << "hello word";                   // 打印输出不换行
    cout << "hello word" << endl;           // 不加这条语句using namespace std;会报错
    std::cout << "hello word" << std::endl; // 这种打印输出的方式,不需要加using namespace std;
    return 0;


int a = 3;
double b = 4.0;
  • #include <iostream>C++的头文件,这些头文件包括了程序中必须的或有用的相关信息。注:不需要加.h
  • using namespace std;告诉编译器使用std命名空间,命名空间是C++中的一个概念
  • cout << "hello word"; 打印输出不换行
  • cout << "hello word" << endl;打印输出(自动换行)
  • 在C++中,cout是一个输出流对象,用于向标准输出设备(通常是屏幕)输出数据。在输出数据时,我们需要使用插入运算符 << 将要输出的数据插入到cout对象中。endl是一个控制符,用于输出一个换行符并刷新输出缓冲区。如果需要在输出字符串后换行并刷新输出缓冲区,可以在字符串后面使用endl
  • endl:end of line

main()函数的变体

int main(void)  // void不写也行
int main() 
int main(int agrc, const char* argv[])

常用关键字和标识符

C++语言字符分为6类:标识符、关键字、运算符、分隔符、常量、注释符

常用关键字

关键字含义
bool布尔类型
char字符类型
int long short整型、长整型、短整型
float double单精度、双精度浮点数
class struct union enum类、结构、联合体、枚举
const常量
unsigned 、signed无符号、有符号整型
void函数不返回值,或无类型指针
static静态变量或函数
extern外部变量
private protected public私有、保护、公有成员
friend友元函数
virtual虚函数
template模板
namespace命名空间
typedef类型别名
inline内联函数

语句定义符号

关键字含义
sizeof类型大小
new delete创建、释放对象
continue略过本次循环、进入下一个循环
throw抛出一个异常
try执行一段可能抛出异常的代码
catch处理抛出的异常
static_cast、const_cast、dynamic_cast、reinterpret_cast类型转换
this当前指针
false、true布尔假、布尔真

预处理命令

指令名称功能
##连字符
#error在编译过程中显示一条错误
#line设置行和文件信息
#pragma执行一条编译指令
#undef取消一个未定义变量

数据类型

#include <iostream>

using namespace std;

int main(void)

    cout << "bool的字节大小:" << sizeof(bool) << endl;
    cout << "char的字节大小:" << sizeof(char) << endl;
    cout << "int的字节大小:" << sizeof(int) << endl;
    return 0;

基本数据类型:1个字节8位(1111 1111), 2 8 = 256 2^8 = 256 28=256

  • char:一个字节,表示字符或小整数
    数据在内存中的存储:
    所有数据在计算机中存储时,都是以字节(byte)为基本单位的,字节是计算机存储空间的最小计量单位,1个字节为8bit

常量与转义字符

String是C++专有的数据常量

#include <iostream>

using namespace std;

int main(void)

    string strA = "";
    string strB = "A";
    string strAC = "ABC";
    string strD = "我爱C++";
    cout << "strA=" << strA << "strB=" << strB << endl;
    return 0;

符号常量:const
符号常量在声明时一定要赋初值,在程序中不能改变其值。
在声明变量时,可以一次声明多个变量。

const  int A = 1; // const 数据类型 常量名 = 常量值; 
int const A = 1; // 数据类型 const 常量名 = 常量值;
int A = 10,B=20;  // 一次声明多个变量

运算符优先级

从左到右
() [] -> . :: ++ –

自动转换与强制转换

自动转换规则:小类型总是被提升为大类型,从而减小精度损失。
强制转换:

(float) a; // 把a转换为float类型
(int) (x+y); // 把x+y的结果转换为整型

C++特有的类型转换

  • static_cast 静态类型转换
  • reinterpret_cast 重新解释类型转换
  • dynamic_cast 子类和父类之间的多态类型转换,动态类型转换
  • const_cast 去掉const属性转换
    一般结论:在C语言中能进行隐式转换的,在C++中,可用static_cast()进行类型转换。
    在C语言中不能进行隐式类型转换的,在C++中可以用reinterpret_cast<>()进行强制转换。

嵌入式入门书籍推荐

  嵌入式技术现在非常火爆,吸引了许多人进入这个领域。那么想要学习嵌入式,有哪些嵌入式入门书籍推荐呢?下面我来一一列举。

  Linux基础

  1、《Linux与Unix Shell 编程指南》

  2、《嵌入式Linux应用程序开发详解》

  C语言基础

  1. The C programming language 《C程序设计语言》

  2. Pointers on C 《C和指针》

  3. C traps and pitfalls 《C陷阱与缺陷》

  4. Expert C Lanuage 《专家C编程》

  5、《高质量程序设计指南:C++/C语言(第3版)》

  Linux内核

  1、《深入理解Linux内核》(第三版)

  2、《Linux内核源代码情景分析》毛德操 胡希明着

  研发方向

  1、《UNIX Network Programming》(UNP)

  2、《TCP/IP详解》

  3、《Linux内核编程》

  4、《Linux设备驱动开发》(LDD)

  硬件基础

  1、《ARM体系结构与编程》杜春雷着

  2、S3C2410 Datasheet

  英语基础

  1、《计算机与通信专业英语》

  系统教程

  1、《嵌入式系统――体系结构、编程与设计》

  2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着

  3、《Building Embedded Linux Systems》

  理论基础

  1、《算法导论》

  2、《数据结构(C语言版)》

  3、《计算机组织与体系结构?性能分析》

  4、《深入理解计算机系统》【美】Randal E. Bryant David O‘Hallaron着

  5、《操作系统:精髓与设计原理》

  6、《编译原理》

  以上就是嵌入式入门书籍推荐,对于基础学习也好,进阶提升也好都是非常不错的选择。当然华清远见星创客的嵌入式精英训练营也是不错的选择,在那里有最新的项目实战和职场老鸟的带领,对未来就业发展很有帮助。

  看完嵌入式入门书籍推荐,学习嵌入式的启明星。这篇文章,希望对你的嵌入式学习之路有所帮助。

以上是关于嵌入式--C++程序入门的主要内容,如果未能解决你的问题,请参考以下文章

学习嵌入式怎么入门和提高?嵌入式开发教程pdf

嵌入式入门必看,看看老鸟如何华丽蜕变!(干货分享帖)

嵌入式入门必看,看看老鸟如何华丽蜕变!(干货分享帖)

Lua入门

如何学习嵌入式

极简嵌入式C语言教程——从入门到入土