小编Ale*_*ura的帖子

用于访问struct成员的` - >`和`.`之间是否有任何显着差异?

虽然熟悉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 gridx成员是否有所作为?如果有差异,我应该选择哪一个?grid.xgrid->x

尝试搜索谷歌/ SO,但我没有找到任何提到哪一个是首选,如果有的方法.两者看起来都是正确的,但我不禁觉得其中一个(->)有一个更专业的用例.

c struct coding-style

1
推荐指数
1
解决办法
65
查看次数

size_t像snprintf这样的函数混淆了

在函数中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 …

c printf sizeof size-t

1
推荐指数
1
解决办法
159
查看次数

C操作顺序?

有人可以解释一下为什么以下代码的结果是9?我真的很困惑..

#include <stdio.h>

int main (void)
{ 
   int a = 3, rez;
   rez = a-- + (-3) * (-2);

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

c operators

1
推荐指数
1
解决办法
864
查看次数

Scheme 的 C ++ 版本

我将如何增加一个变量,就像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)

increment chicken-scheme

0
推荐指数
1
解决办法
1169
查看次数

在方向上删除X很多单词,Vim

有没有办法指定在任何给定方向上删除多少个单词?我知道有一种方法可以指定删除多少个字母,但是单词呢?

就像我希望这些方面的东西:

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)

vim

0
推荐指数
1
解决办法
63
查看次数

egrep输出行,最大字数为"foo"

我的行看起来像这样:

foo, foo6, foo foo large foo, la foo
Run Code Online (Sandbox Code Playgroud)

我只想要不超过3 foo的行,我想用它egrep来提取所说的行.

我认为类似的东西(foo){0,3}会起作用,但它也输出超过3 foo的线条.

regex unix grep

0
推荐指数
1
解决办法
49
查看次数

标签 统计

c ×3

chicken-scheme ×1

coding-style ×1

grep ×1

increment ×1

operators ×1

printf ×1

regex ×1

size-t ×1

sizeof ×1

struct ×1

unix ×1

vim ×1