我正在尝试通过串行设备将 utf-8 符号发送到浏览器并显示它们。我发现当我打印facepalm emoji \xe2\x80\x8d\xe2\x99\x80\xef\xb8\x8f(在Windows 10 Win+上.)时它后面有U+200D和\xe2\x99\x80字符。其他表情符号没有这个功能。我正在使用查看不可打印的 unicode 字符工具。我还发现,如果您在记事本中打印它,它会显示您\xe2\x99\x80,当您在浏览器地址栏中打印它时,它\xe2\x99\x80是不可见的,但如果您按退格键,则会将其删除。最后,如果您在某些 html 文本输入中打印它,则可以使用单个退格键删除整个表情符号。这是为什么?
我有一个主结构,其中包含 2 个其他结构的数组。我在代码中将它用作常量,因此我想提前初始化它。我该如何正确地做呢?这是我的例子,它抛出了数百万个警告,显然不起作用。
#include <stdio.h>
typedef struct{
char a;
char b;
} subStruct1;
typedef struct{
char c;
char d;
}subStruct2;
typedef struct{
subStruct1 *SS1;
subStruct2 *SS2;
} mainStruct;
mainStruct MS = {
SS1: {{'a', 'b'}, {'A', 'B'}},
SS2: {{'c', 'd'}, {'C', 'D'}}
};
int main()
{
printf("%c %c %c",MS.SS1[0].a,MS.SS1[1].b,MS.SS2[1].c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)