int Test_result[9]; NRF_LOG_INFO(Test_result[0,1,2,3,4,5,6,7]); 报错 expression has no effect
时间: 2023-09-08 13:05:26 浏览: 35
### 回答1:
。这是因为在 Test_result[0,1,2,3,4,5,6,7] 这个表达式中,只有 Test_result[0] 会被访问,而 Test_result[1,2,3,4,5,6,7] 不会被访问,因此编译器会认为这个表达式没有作用,从而报错。如果您想打印整个数组,可以使用循环或者其他方法来实现。
### 回答2:
这个错误是因为在这行代码中,你试图使用一个范围操作符([0,1,2,3,4,5,6,7]),但是在C语言中,范围操作符是不存在的。
正确的写法应该是:
NRF_LOG_INFO(Test_result[0]);
NRF_LOG_INFO(Test_result[1]);
NRF_LOG_INFO(Test_result[2]);
NRF_LOG_INFO(Test_result[3]);
NRF_LOG_INFO(Test_result[4]);
NRF_LOG_INFO(Test_result[5]);
NRF_LOG_INFO(Test_result[6]);
NRF_LOG_INFO(Test_result[7]);
这样才能按照索引来访问和打印出Test_result数组中的每一个元素的值。
### 回答3:
报错的原因是因为在输出语句 NRF_LOG_INFO 中使用了方括号 [] 和逗号 , 的组合,而这样的语法是错误的。
方括号 [] 代表数组或者指针中的某个元素,逗号 , 在 C 语言中用于多个表达式的分隔。
正确的语法是使用一个循环语句遍历数组的每个元素进行输出,如下所示:
```c
for(int i=0; i<8; i++){
NRF_LOG_INFO("%d", Test_result[i]);
}
```
这样就能够输出数组 Test_result 的每个元素了。