如何在Keil uVision中定义二进制数的数组?

问题描述

我尝试将后缀'y'和二进制数字放在头文件的数组中,但是出现“ y附近的语法错误,预期为'}'”。

extern unsigned int A[8]={
00111100y,01100110y,01111110y,01100110y};

enter image description here

解决方法

文本图片中的错误可以通过以下方法解决:

  • 使用正确的注释语法:/* ... */(故意提供古老的形式)
  • 使用正确的数字语法:66 /* decimal */0x42 /* hexadecimal */
  • 不使用后缀y,这对于上面建议的格式是不需要的

更多错误(上面未显示,但是更容易陷入陷阱)

  • 避免以0开头的数字(显示的错误中未提及,但另一个陷阱)
  • 标题中仅声明数组:使用extern但不使用= numbers;
  • 在代码中的某处定义数组:不使用extern,但使用= numbers;
,

发布的语法不正确。

不能将某些内容声明为extern并在同一条语句中对其进行初始化。

注意:extern通常意味着实际的声明在另一个文件上,该文件将与当前文件链接。

建议:在当前文件中:

extern unsigned int smiley[8];

以及其他一些文件中

unsigned int smiley[8] =
{
    0,// 00000000
    1,// 00000001
};

请注意使用大括号'{'和'}',而不是括号'('')'。

在注释的开头注意斜杠的正确“倾斜”(右上角)。

y不是标准C语法的一部分。也许是kyle编译器的扩展。但是,在研究kyle编译器文档时,我没有找到y数据类型。