作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
>", NULL }, { -6ren">
我有这个数组:
static const Layout layouts[] = {
{ "[]=", tile },
{ "><>", NULL },
{ "[M]", monocle },
};
这个函数应该循环遍历数组:
int
cyclelayout(const Arg *arg) {
static unsigned short int layout = 0;
if (++layout >= sizeof(layouts)/sizeof(layouts[0])) {
layout = 0;
}
setlayout( &((Arg) {.v = &layouts[layout]}));
}
当它被调用时,它应该设置下一个布局,或者如果超出数组元素则返回到 0。但它遍历了数组元素并且程序崩溃了。我不知道出了什么问题?
参数和布局:
typedef union {
int i;
unsigned int ui;
float f;
const void *v;
} Arg;
typedef struct {
const char *symbol;
void (*arrange)(Monitor *);
} Layout;
完整的程序: dwm-6.0 dwm-6.0-cyclelayout.patch
最佳答案
int // This says to return an int.
cyclelayout(const Arg *arg) {
static unsigned short int layout = 0;
if (++layout >= sizeof(layouts)/sizeof(layouts[0])) {
layout = 0;
}
setlayout( &((Arg) {.v = &layouts[layout]})); // This doesn't look like valid C to me?
return 4; // http://xkcd.com/221/
}
如果你的函数应该“循环遍历数组”,它不应该在某个地方有一个循环吗?
循环有以下几种风格:
for
do-while
while
我在您的函数中没有看到任何这些关键字,因此我断定它不会“循环”任何内容。
关于循环遍历数组遍历元素计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18025059/
我是一名优秀的程序员,十分优秀!