【STM32】【vscode编译】 不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来(\“&\“),以将其作为字符串的一部分传递
记录一下vscode开发STM32遇到的一点小问题……
目录
记录一下vscode开发STM32遇到的一点小问题……
报错内容:
所在位置 行:1 字符: 128
+ ... Caller.exe -o e:
+ ~
不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来("&"),以将其作为字符串的一部分传递。
所在位置 行:1 字符: 255
+ ~
不允许使用与号(&)。& 运算符是为将来使用而保留的;请用双引号将与号引起来("&"),以将其作为字符串的一部分传递。
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : AmpersandNotAllowed

踩坑之路:
- 重启电脑
- 重新打开文件夹
- 运行批处理文件
- ……
都没有解决
气死了(╬◣д◢)

然后打开上一个文件夹(2.滴答时钟24位递减计数器系统时钟SysTick)编译,它就通过了

3.3.引脚GPIO批量操作数组&for循环流水灯就出现上述错误
……
但是回到Keil5里编译是没有问题的
解决方案:
因为3...那个文件是由2...那个文件 复制再修改的,只是文件名有不同,重命名时候多加了个&,导致编译出问题,只需要将文件重命名,把文件夹名称里那个 & 去掉

若想使用vscode代替keil5编写STM32程序,要注意文件夹名称不能带 &
补充
补充一点最近的VScode配置
修改默认的编码格式
修改默认的编码格式,在设置里输入,encoding,进入就能看到怎么修改的了


我一般都用GB2312,或者UTF-8,在这里就能修改全局的默认编码格式了
保存后代码自动格式化
还是在设置里,这次输入 format on save,之后打上对钩,应该就可以了ctrl+s保存后代码会自动格式化!(可能还需要装一个插件:Prettier)

整理后的代码非常nice
#include <stdio.h>
typedef char *pchar;
int main()
{
// int a = 0x12345678;
// int *p1 = &a; // 合理初始化,防止野指针
// unsigned char *p2 = &a; // 不合理的初始化,防止野指针
// // 64bits OS, 8 bytes
// printf("Hello, World!\n");
// printf("p1: %x\n", *(p1)); // 取内容
// printf("p2: %x\n", *p2); // 大端模式 or 小端模式
// /*char *类型取到的数据是 0x78,这样是大端模式还是小端模式呢?*/
// /*低位存在低地址,这是小端模式*/
printf("Code Begin\n");
char *p = "Hello world!\n";
char buf[] = {"Hello world!\n"};
char *p2 = buf;
pchar p3 = "Hello typedef!\n";
printf("p: %s", p); // hello world!
// *p = 'x';
// printf("p: %s", p); // hello world!
printf("%x\n", *p); // 48
*p2 = 'h'; // 修改buf[0]的值,修改成小写的h hello world!
printf("change buf[0] to h: %s", p2); // hello world!
printf("p3: %s", p3); // hello typedef!
printf("Code End\n");
return 0;
}
更新日期:2024年12月20日22:42:33
参考文章
更多推荐
所有评论(0)