我是C语言的新手,我想做些类似的事情
uint8_t message[12];
message[0] = 0x00;
message[1] = 0x00;
message[2] = 0x00;
message[3] = 0x00;
message[4] = 0x00;
message[5] = 0x00;
message[6] = 0x00;
message[7] = 0x00;
message[8] = 0x00;
message[9] = 0x00;
message[10] = 0x00;
message[11] = 0x00;
sprintf(_smess,"AT$SS=%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\n",
message[0], message[1], message[2], message[3],
message[4], message[5], message[6], message[7],
message[8], message[9], message[10], message[11]);
但是我不知道如何声明变量_smess,我尝试使用char * _smess或uint8_t _smess [12],但无论如何我还是遇到了错误
如果一个声明,char _smess[43];
那么我得到这个错误:
Multiple markers at this line
- incompatible implicit declaration of built-in function 'sprintf' [enabled by
default]
- implicit declaration of function 'sprintf' [-Wimplicit-function-declaration]
- each undeclared identifier is reported only once for each function it
appears in
- '_smess' undeclared (first use in this function)
您知道该字符串基于传递给它的格式字符串sprintf
(即42个字符)有多大,因此声明一个至少具有该大小的char数组,并确保为NUL('\0'
)终止符留出空间:
char _smess[43];
编辑:
错误“内置函数'sprintf'的不兼容隐式声明”是因为您不在#include <stdio.h>
文件顶部。
“'_smess'未声明”错误很可能是因为您在使用它之前没有定义它。它需要出现在sprintf
通话之前。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句