虽然熟悉C及其细微差别的人可能非常明显,但我对这两者并不熟悉,也无法判断使用或访问struct的成员之间是否存在任何显着差异. ->.
就像我有struct my_struct:
struct my_struct {
int x;
int y;
};
struct my_struct grid;
Run Code Online (Sandbox Code Playgroud)
除了不同的语法之外,我是否通过或访问struct my_struct grid的x成员是否有所作为?如果有差异,我应该选择哪一个?grid.xgrid->x
尝试搜索谷歌/ SO,但我没有找到任何提到哪一个是首选,如果有的方法.两者看起来都是正确的,但我不禁觉得其中一个(->)有一个更专业的用例.
在函数中snprintf,如何strlcat,以及strlcpy他们的manpage size_t size在所述函数的参数中提到的内容,究竟是size什么,或者最好的方法是什么size?
strlcpy(3),strcat(3)和printf(3)(添加评论)size_t
strlcpy(char *dst, const char *src, size_t size);
// ^^^^
char *
strncat(char *str, const char *src, size_t n);
// ^
int
snprintf(char *str, size_t size, const char *format, ...);
// ^^^^
Run Code Online (Sandbox Code Playgroud)
我的理解是,size可以(或者,如果strncat,应该?)获得如下:
sizeof dst - strlen(dst) - 1
// sizeof dst buffer, minus the offset of '\0', minus 1 for the null-terminator
Run Code Online (Sandbox Code Playgroud)
但是我记得在某个地方阅读,以获得size …
有人可以解释一下为什么以下代码的结果是9?我真的很困惑..
#include <stdio.h>
int main (void)
{
int a = 3, rez;
rez = a-- + (-3) * (-2);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我将如何增加一个变量,就像a=0; a++;在Chicken中那样?
在 Common Lisp 中我会incf像这样使用:
(setf a 0) (incf a) (print a)
;=> 0
;=> 1
;=> 1
;=> 1
Run Code Online (Sandbox Code Playgroud)
但是 Chicken-scheme 似乎没有incf函数/宏,我尝试过使用aproposEgg 之类的东西,但到目前为止还没有任何帮助。
在 C 中,我会像这样增加变量:
int a = 0;
a++;
printf("%d", a);
Run Code Online (Sandbox Code Playgroud)
注意,我不想知道如何简单地a将 的值暂时增加1,我想增加,a以便a不再等于0而是等于1。
因此,以下不是我想要的:
(let ((a 0)) (set! a (+ 1 a)) (print a))
Run Code Online (Sandbox Code Playgroud)
这是我正在寻找的一个用 NewLisp 编写的示例:
(set 'a 0) (++ …Run Code Online (Sandbox Code Playgroud) 有没有办法指定在任何给定方向上删除多少个单词?我知道有一种方法可以指定删除多少个字母,但是单词呢?
就像我希望这些方面的东西:
2X <DIRECTION>
Run Code Online (Sandbox Code Playgroud)
所以我可以采取这样的方式:
inoremap <F14> <ESC>:call Smode('hlon')<CR>|
Run Code Online (Sandbox Code Playgroud)
把它变成这个:
inoremap <F14> <ESC><CR>|
Run Code Online (Sandbox Code Playgroud) 我的行看起来像这样:
foo, foo6, foo foo large foo, la foo
Run Code Online (Sandbox Code Playgroud)
我只想要不超过3 foo的行,我想用它egrep来提取所说的行.
我认为类似的东西(foo){0,3}会起作用,但它也输出超过3 foo的线条.