Arduino!C语言编程终极实战课程【进阶篇】
学编程的天线工程师
编辑于 2022年11月23日 08:16

1.结构体左右值

struct People{

char name[10];

int age;

float height;

} ztz1;

以下是错误的

ztz1.name="Tim"

错误原因 “Tim”是常量字符串,在sram常量区,左边是ztz1.name是位于变量区的地址(Location Value)左值,不应该被赋值。应该修改为

struct People{

char *name;

int age;

float height;

} ztz1;

ztz1.name="Tim"

此时ztz1.name是(register value)右值,所以可以被赋值。

也可以在初始化时赋值,如下

struct People{

char name[10];

int age;

float height;

} ztz1={“Tim”,15,160.0};

此时也是针对右值赋值。

准确理解左右值,这是个经典例子。

2.union巧用

union Myunion{

float f; //4 byte长度

byte b[4];

} mu;

mu.f=1.60

##接下来我们可以用byte方法读取f在内存中的表示方法

for(int i=0;i<4,i++){

mu.b[i]

}

3 arduino中类的声明this是指针与java不同,java中this是实力

class People{

private:

String _name;

public:

void setName(String);

};

##函数实现

void People::setName(String name){

this->_name=name

}

点评,注意和java的习惯区别,本质思想是一致的。

4.类和实例对象

在java中类的方法以及静态属性都是在类被调用的开始初始化的,其中的方法是所有实例共享的,私有属性是在实例中单独保存的