Atmel Studio:返回一个包含数组的寄存器
Atmel Studio: Returning a register which contains an array
我正在为 Atmel Studio 中的 Arduino 编写一个项目。 在我的代码中,我有两个函数,如下所示:
unsigned char* USART_Receive(void){
while(!(UCSR0A & (1<<RXC0)) );
return UDR0;
}
void Transmit(){
unsigned char *a = USART_Receive();
unsigned char pckaffe[4] = { 0x0C, 0x0A, 0x0F, 0x0E };
unsigned char pcpersienner[4] = { 0x0B, 0x0B, 0x0B, 0x0B };
if(a == pckaffe && zeroCrossCounter() == 1){
sendBurst();
}
}
如果一切正常,UDR0
寄存器应该包含一个具有 4 个索引 (array[4]
( 的数组,因此为了返回寄存器中的数组,我使用了指针。但是,我在return UDR0
收到以下错误:
Error invalid conversion from 'uint8_t {aka unsigned char}' to 'unsigned char*' [-fpermissive]
编辑:
亚当·斯蒂芬尼亚克:
uint8_t varrr = 0;
unsigned char* USART_Receive(void){
while(!(UCSR0A & (1<<RXC0)) );
varrr = UDR0;
return &varrr;
}
说它修复了你的整个代码,这完全脱离了上下文,但如果你会这样做:
#include <cstdint>
uint8_t varaible = 0;
unsigned char* USART_Receive(void){
return varaible;
}
void Transmit(){
unsigned char *a = USART_Receive();
}
int main(){
Transmit();
}
将获得:
In function 'unsigned char* USART_Receive()':
6:12: error: invalid conversion from 'uint8_t {aka unsigned char}' to 'unsigned char*' [-fpermissive]
In function 'void Transmit()':
10:24: warning: unused variable 'a' [-Wunused-variable]
要解决此问题,只需返回变量的地址:
#include <cstdint>
uint8_t varaible = 0;
unsigned char* USART_Receive(void){
return &varaible;
}
void Transmit(){
unsigned char *a = USART_Receive();
}
int main(){
Transmit();
}
相关文章:
- C++-字符串是否包含一个带有简单循环的单词
- 如何在 c++ 项目中包含一个包含所有头文件?
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 只要我不包含一个标题,重新定义C++关键字合法吗
- 我该如何循环遍历我的数组(缓冲区——包含一个文本文件),并将其打印成30字节的块
- 为什么我应该在scanf()-家族成员中包含一个长度修饰符作为参数?有什么好处?使用长度修改器进行扫描的作用
- 重载运算符主体仅包含一个函数调用
- 一次包含一个 #include 表达式的多个头文件?
- C++:如何创建一个临时对象,包含一个指针 - 常量或非常量,具体取决于上下文
- 如何查找一组类型对是否包含一个元素作为第二个成员
- 仅包含一个 printf 的程序崩溃
- NDK - 包含一个预构建的库,并在 Android 项目中调用本机函数
- 如何为字符串编写正则表达式,其中包含一个数字至少一个数字,并且不包含任何字母
- 如何在Java中包含一个库,该库在C 中具有Java中具有本机绑定(库)的库
- 为什么string.empty()在字符串包含一个值时评估为true
- [C ] NULL确实在内存中也包含一个特定的地址
- 如果QString包含一个数字
- 为什么 C++11 包含一个关于比较空指针的奇怪子句
- 正在(在构造函数中)将其包含一个不良设计的指针传递,如果是的,则解决方案是什么