我正在 Linux 上设置 Visual Studio Code。
由于机器是共享的,我的$HOME
文件夹的大小受到限制,我没有空间用于扩展(存储在 中$HOME/.vscode/
),这使我无法安装它们。
我在其他开发目录上确实有足够的空间,但是我找不到告诉 Visual Studio Code 使用另一个路径而不是$HOME
全局.vscode
文件夹的方法。
有没有办法在不改变我的情况下做到这一点$HOME
?
编辑
虽然评论中的建议解决了将扩展安装在不同文件夹中的问题 -.cache
我的$HOME
文件夹中
有一个由 vscode 填充的巨大文件夹......有没有办法以某种方式更改到这个文件夹的路径?
我有一个函数,以int
数组作为参数.该int
数组表示一个字符串,但必须能够包含EOF
,因此不能是类型char[]
.我的函数看起来像这样:
_Bool fun(int str[]) {
// does something involving checking elements for EOF, e.g.:
return (str[0]==EOF);
}
Run Code Online (Sandbox Code Playgroud)
出于测试目的,我想fun
用字符串文字调用(虽然字符串文字自然是类型char[]
,但不能包含EOF
),实际上:
fun("test");
Run Code Online (Sandbox Code Playgroud)
这将编译,但有关于错误的参数类型的警告.这是预期的,因为字符串文字char[]
和参数是int[]
.
我能做到这一点:
fun( (int*) "test");
Run Code Online (Sandbox Code Playgroud)
这可能是等价的,只是我正在明确地进行演员,同样的编译警告.
我读的是铸造char*
到int*
不能保证正常工作(链接).这在一般情况下是很自然的,因为如果我现在尝试写一个大int
的str[some_index]
,它可能不适合 - str[some_index]
只有一个内存分配给char
(告诉我,如果我在这里错了).
但是因为我不会做任何这样的写,而只是比较(并且比较char和int应该没问题) - 我可以使用上述任何一种吗?在这种情况下如何摆脱编译警告?或者解决这个问题的最佳方法是什么?
我当然可以写一个简单的函数来复制char
字符串文字给int
数组赋予的数组,值为值,但必须有更好的方法.这样的解决方案也会浪费内存.
(顺便说一下 - 当测试时EOF
,我会做这样的事情:
int str[] = {'t', 'e', 's', 't', EOF}; …
Run Code Online (Sandbox Code Playgroud) 在sh
我遇到的脚本中,我发现了这些线条
#\
MAKE_LINTIAN_HAPPY '
Run Code Online (Sandbox Code Playgroud)
接近开始.
从标识符的名称,很清楚它为什么被添加.但我的问题是:为什么这个合法的代码以及它做了什么(如果有的话)?
我问的原因是它使得GNU的源代码突出显示在这个脚本上无用,因为它会将tick后的所有文件解释为字符串.如果我知道为什么它是合法的,可能建议编辑语言定义文件来解决这个问题.
我试图在man
网页上搜索sh
线索
$ man sh|grep "\W'\W"
Run Code Online (Sandbox Code Playgroud)
但是没有一场比赛似乎有帮助(虽然有很多比赛,所以我可能会错过它,如果它在那里).
我也不明白#\
; 我不知道这是否与这个问题无关.(Vim
将对后面的行进行语法着色#\
作为注释,但是一个简单的测试表明它sh
会执行以下行#\
.)
这是脚本开头的扩展摘录:
#!/bin/sh
# [...]
#\
exec tclsh $0 -- "$@"
#\
MAKE_LINTIAN_HAPPY '
set PROG_VERSION "v1.27 17/06/2005"
Run Code Online (Sandbox Code Playgroud)