Tag: static

如何使用静态编译处理GTK中的FileChooser

我必须创建一个文件(.exe)程序。 在该程序中,用户可以从他的计算机中选择目录。 我按照http://www.tarnyko.net/en/?q=node/31的顺序创建程序,运行良好。 但是当我调用FileChoser(点击按钮)时,我收到了这个错误 GLib-GIO-ERROR No GSettings schemas are installed on the system Tarnyko对此问题的回应是在网页上发布的 – 这是静态编译的“bug”。 我该如何解决这个问题? 一方面我必须有一个文件。 另一方面,我真的不想自己创建“复杂的”FileChooser ……有没有选择来处理这个问题? 我的想法:1 – 调用操作系统的原生文件选择器(windows)2 – 自己创建文件选择器 – 如果它在gtk中不是“太难” 我不知道怎么做这两件事。 抱歉复制 – 可能成功的解决方案是答案forms“ebassi”这里GLib-GIO-ERROR **:没有GSettings架构安装在系统上 (尚未测试)

C中的静态函数和变量

我知道在面向对象语言中使用静态变量的目的是什么,但是,我不明白在C中使用“static”关键字的含义是什么。有人能解释一下吗?

在C中返回本地静态

在C语言中, static变量的范围通过文件。 在以下代码中,函数返回静态变量。 int fun(){ static int i = 10; return i; } int main() { printf(“%d\n”, fun()); return 0; } 并打印输出10。 那么,在C未定义的行为中返回本地静态还是定义明确?

我可以获得最佳性能制作静态变量吗?

为什么有些人这样做: char baa(int x) { static char foo[] = ” .. “; return foo[x ..]; } 代替: char baa(int x) { char foo[] = ” .. “; return foo[x ..]; } 在linux源代码应用程序上看起来很常见。 有性能差异? 如果有,有人可以解释原因吗? 提前致谢。

c和c ++之间关键字static的区别是什么?

我知道c中的关键字有两种用法: 修改变量 修改全局变量 此用法限制了全局变量范围的范围,从定义的点到文件末尾。 修改局部变量 这种用法限制了定义的函数中局部变量的范围,但也保留在内存的静态区域中 修改function 这意味着只能调用它定义的文件中的函数。 而在c ++中,除了c中的用法之外, static还用于修改类的数据成员和函数成员。 此用法限制属于类的成员而不是类的对象。 我想知道c / c ++中有什么static用法吗?

在Xcode for Mac中编译和链接Python的C扩展

我正在尝试在Mac中编译一个简单的C扩展以与Python一起使用,并且在命令行中一切运行良好。 有效的代码和gcc命令如下所示。 现在我正在尝试在Xcode 4.5(Mac OS10.8)中构建相同的扩展,并且我尝试了dylib或静态库的几个目标设置,但是我总是得到一个无法用Python加载的文件,显示错误: ./myModule.so: unknown file type, first eight bytes: 0x21 0x3C 0x61 0x72 0x63 0x68 0x3E 0x0A 我的最终目标是在XCode中创建一个工作区,其中包含C / C ++扩展的源代码,并具有在Xcode中调用它的python脚本。 所以,如果我需要调试C / C ++扩展,我有XCode调试function。 我知道XCode不会调试到Python脚本,但它可以运行它,对吗? gcc -shared -arch i386 -arch x86_64 -L/usr/lib/python2.7 -framework python -I/usr/include/python2.7 -o myModule.so myModule.c -v #include /* * Function to be called from Python */ static PyObject* […]

数组参数中的数组长度

我正在阅读C编程: KNKing 的现代方法学习C编程语言,本章讲述函数和数组参数。 解释了可以使用这些结构来表示数组参数的长度: 1。 void myfunc(int a, int b, int[a], int[b], int[*]); /* prototype */ void myfunc(int a, int b, int n[a], int m[b], int c[a+b+other_func()]) { … /* body */ } 2。 void myfunc(int[static 5]); /* prototype */ void myfunc(int a[static 5]) { … /* body */ } 所以问题是: 一个。 示例1中的构造是纯粹的装饰还是它们对编译器有影响? 湾 在这种情况下, […]

为什么C ++ 11不支持在静态成员函数上声明extern“C”?

前提是我有一个包含声明为void g(void (*callback)());的函数的C库void g(void (*callback)()); 以下代码优雅但非法: struct A { // error C2159: more than one storage class specified (VC++ Nov 2012 CTP) static extern “C” void callback() {} }; g(A::callback); 为什么C ++ 11不支持这个?

两个具有相同名称和类型的变量,在两个不同的.c文件中,使用gcc进行编译

这是交易。 我在两个不同的.c文件中有两个相同的全局变量,它们没有被声明为extern。 所以每个.c文件都应该看到自己的变量,对吧? 但是我得到了一些非常奇怪的行为,好像一个文件正在读取其他文件变量(将它们链接在一起之后)。 将“静态”限定符添加到两个变量定义似乎解决了这个问题。 所以我真正想知道的是,在没有’静态’限定符的情况下究竟发生了什么?

Linux设备驱动程序中的静态函数

为什么大多数设备驱动程序中的每个function都是静态的? 由于静态函数在文件范围之外不可见。 然后,这些驱动程序函数如何被用户空间应用程序调用?