[STM32L0] 创建的宏在cubeIDE中处理时出错。

[复制链接]
125|0
Treasure101 发表于 2025-10-25 15:06 | 显示全部楼层 |阅读模式
创建了一个宏,可以在vscode中使用GNU11标准处理,在cubeIDE中处理时出错。


#define PRINTARRAYSET(type, name) void printArray_##name(type* arr, size_t size) {\

for (size_t i = 0; i < size; i++)\

   printf("%d, ",arr[i]);\

printf("\r\n");\

}

#define PRINTARRAYSETLONG(type, name) void printArray_##name(type* arr, size_t size) {\

for (size_t i = 0; i < size; i++)\

   printf("%ld, ",arr[i]);\

printf("\r\n");\

}

#define PRINTARRAYSETFLOAT(type, name) void printArray_##name(type* arr, size_t size) {\

for (size_t i = 0; i < size; i++)\

   printf("%f, ",arr[i]);\

printf("\r\n");\

}

PRINTARRAYSET(char , char)

PRINTARRAYSET(signed char ,signed_char)

PRINTARRAYSET(short int , short_int)

PRINTARRAYSET(int , int)

PRINTARRAYSETLONG(long , long)

PRINTARRAYSET(unsigned char , unsigned_char)

PRINTARRAYSET(unsigned int , unsigned_int)

PRINTARRAYSET(short unsigned int , short_unsigned_int)

PRINTARRAYSETLONG(long unsigned int , unsigned_long)

PRINTARRAYSETFLOAT(float , float)

PRINTARRAYSETFLOAT(double , double)

#define PRINTARRAY(arr, size) _Generic(arr,\

  char*: printArray_char,\

  signed char*: printArray_signed_char,\

  short int*: printArray_short_int,\

  int*: printArray_int,\

  long*: printArray_long,\

  unsigned char*: printArray_unsigned_char,\

short unsigned int*: printArray_short_unsigned_int,\

  unsigned int*: printArray_unsigned_int,\

  unsigned long*: printArray_unsigned_long,\

  float*: printArray_float,\

  double*: printArray_double\

)(arr, size)

您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

65

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部