小编sei*_*inn的帖子

GtkBuilder和"名字"

我一直试图在GtkBuilder对象中获取所有GtkWidgets的"名称".

我已经设法通过构建器对象获取所有对象gtk_builder_get_objects()并将它们存储在GSList中.

然而,当我gtk_widget_get_name()在gobjects(我投射到GtkWidgets)上使用时,我获得了通用名称,例如"GtkWindow"和"GtkButton",而不是在glade中显示的"window1"或"button1".

任何帮助都将非常感激,并会让这个程序员非常高兴.

c gtk gtkbuilder

6
推荐指数
2
解决办法
2035
查看次数

在C中寻址字符串文字的地址

char **s = &"Is this valid?";
Run Code Online (Sandbox Code Playgroud)

是否获取C中允许存储字符串文字地址的地址?我知道字符串文字存储在.rodata数据段中.但是,获取该地址的地址没有意义.

应该注意的是,gcc编译它并生成一个可用的可执行文件.

c string literals

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

复合文字有没有办法在c99中有可变长度?

我知道通过正常声明数组,可以在运行时确定长度的数组:

char buf[len];
Run Code Online (Sandbox Code Playgroud)

而且我知道我可以将数组声明为复合litral并将其分配给中间的指针:

char *buf;
....
buf = (char[5]) {0};
Run Code Online (Sandbox Code Playgroud)

但是,将两者结合起来并不起作用(标准不允许).

我的问题是:有没有办法实现以下代码的效果?(注len)

char *buf;
....
buf = (char[len]) {0};
Run Code Online (Sandbox Code Playgroud)

谢谢.

c c99 compound-literals

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

如何确定C中的stdout"指向"?

我希望能够告诉我的程序的stdout何时被重定向到文件/设备,以及何时在屏幕上正常打印.怎么能在C中完成?

更新1:从评论中,它似乎与系统有关.如果是这样,那么如何使用符合posix标准的系统呢?

c posix stdout

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

C中的switch和字符串文字字符

看一下下面的例子:

int main(){
        char *s = "Hello";
        switch (s[0]) {
                case "Hello"[0]:
                        return 1;
                case "Goodbye"[0]:
                        return 2;
                default:
                        return 0;
        }
}
Run Code Online (Sandbox Code Playgroud)

编译此示例时,我收到一个错误,抱怨案例标签不是整数.但这似乎不正确,因为"..."[0]解析为整数.

有人可以对此有所了解并解释为什么这段代码无法编译?

c

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

提要有效性所需的最少裸原子标签

原子供稿有效所需的最低限度标签是什么?我承认我尚未阅读完规范,但认为简短的摘要对我和任何寻求简短,清晰答案的人都是有益的。

atom-feed

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

标签 统计

c ×5

atom-feed ×1

c99 ×1

compound-literals ×1

gtk ×1

gtkbuilder ×1

literals ×1

posix ×1

stdout ×1

string ×1