字符串常量后面接动态数字

用到了itoa,但是编译时提示“undefined reference to `itoa’”所以使用sprintf来代替。

 characterstring_init_ansi1(&My_Object_Name, "simple_", Object_Instance_Number);
 334 bool characterstring_init_ansi1(
 335     BACNET_CHARACTER_STRING * char_string,
 336     const char *value,
 337     uint32_t data)
 338 {
 339     return characterstring_init1(char_string, CHARACTER_ANSI_X34, value,
 340         value ? strlen(value) : 0,
 341         data);
 342 }
 281 bool characterstring_init1(
 282     BACNET_CHARACTER_STRING * char_string,
 283     uint8_t encoding,
 284     const char *value,
 285     size_t length,
 286     uint32_t data)
 287 {
 288     bool status = false;        /* return value */
 289     size_t i;   /* counter */
 290     char string[25];
 291
 292     if (char_string) {
 293         char_string->length = 0;
 294         char_string->encoding = encoding;
 295         /* save a byte at the end for NULL -
 296            note: assumes printable characters */
 297         if (length <= CHARACTER_STRING_CAPACITY) {
 298             if (value) {
 299                 for (i = 0; i < MAX_CHARACTER_STRING_BYTES; i++) {
 300                     if (i < length) {
 301                         char_string->value[char_string->length] = value[i];
 302                         char_string->length++;
 303                     } else {
 304                         char_string->value[i] = 0;
 305                     }
 306                 }
 307             } else {
 308                 for (i = 0; i < MAX_CHARACTER_STRING_BYTES; i++) {
 309                     char_string->value[i] = 0;
 310                 }
 311             }
 312 //         itoa(data,string,10);
 313            sprintf(string, "%d", data);
 314            strcat(char_string->value, string);
 315            char_string->length = strlen(char_string->value);
 316 //              printf("%s:%d##################............\n",char_string->value,char_string->length     );
 317            status = true;
 318         }
 319     }
 320
 321     return status;
 322 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值