小编qrd*_*rdl的帖子

快速排序与合并排序

为什么快速排序比合并排序更好?

sorting algorithm

104
推荐指数
7
解决办法
23万
查看次数

你如何在python中实现"#ifdef"?

C我以前的编程只有代码部分用于调试目的(记录命令等).通过使用#ifdef预处理器指令可以完全禁用这些语句,如下所示:

 #ifdef MACRO

 controlled text

 #endif /* MACRO */
Run Code Online (Sandbox Code Playgroud)

做类似事情的最佳方法是什么python

python preprocessor

33
推荐指数
4
解决办法
4万
查看次数

使用Linux中的Windows DLL

我们需要与第三方应用程序接口,但应用程序背后的公司不会泄露消息协议,只提供Windows DLL接口.

我们的应用程序是基于Linux的,所以我不能直接与DLL通信.我找不到任何现有的解决方案,所以我正在考虑在Linux和Windows之间编写基于套接字的桥接器,但是我确信它不是一个独特的问题,而且之前应该有人做过.

你知道任何允许从Linux上的C app调用Windows DDL函数的解决方案吗?它可以使用Wine或单独的Windows PC - 无所谓.

提前谢谢了.

linux api dll

20
推荐指数
2
解决办法
3万
查看次数

retranslateUi()清除QLabel文本

我的基于qt4的应用程序通过调用retranslateUi()函数动态地更改GUI语言.它就像一个魅力,但当它处理QLabel程序更改的文本时,它会尝试翻译原始文本 - 在Qt Designer中指定的文本,而不是由我的程序设置的文本.

我理解它发生的原因retranslateUi()是因为它是在构建过程中自动生成的,所以它不可能知道我的更改,但我更愿意QLabel完全跳过这些.有没有办法告诉Qt跳过某些小部件retranslateUi()?或者,也许我可以QLabel在我的程序中禁用内容更改?

我知道我可以QLabel通过重写来setText()解决这个问题,但是我更喜欢使用标准QLabel来使用Qt Designer来操作它.

c++ user-interface qt localization

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

GCC功能属性与缓存

我有一个昂贵的函数被多次调用,并且参数的可能值非常有限.
函数返回代码仅依赖于参数,因此加快速度的明显方法是在函数中保留静态缓存以获取可能的参数和相应的返回代码,因此对于参数的每个组合,代价高昂的操作只执行一次.
我总是在这种情况下使用这种方法并且它工作正常但我刚刚想到GCC功能属性const或者pure可能对我有帮助.

有没有人有这方面的经验?GCC如何使用pureconst属性 - 仅在编译时或运行时?
我可以依靠GCC足够聪明地调用一个函数,声明为

int foo(int) __attribute__ ((pure))
Run Code Online (Sandbox Code Playgroud)

对于相同的参数值只有一次,或者没有任何保证,我最好坚持使用缓存方法?

编辑:我的问题不是关于缓存/ memoization /查找表,而是GCC函数属性.

c optimization gcc

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

将指针传递给函数

我对我的计划有疑问

#include<stdio.h>

int myFunc(char **);
main()
{
    char *a[2]={"Do","While"};
    myFunc(a);
}

int myFunc(char **P)
{
    /* Here I want to print the strings passed but I'm unable to
       print the strings I just tried the below statement which
       printed just the first letter which is 'D'*/
       printf("%c",**P);
}
Run Code Online (Sandbox Code Playgroud)

当我试着

printf("%s",**P);
Run Code Online (Sandbox Code Playgroud)

我得到运行时错误.所以有人可以帮帮我吗?

谢谢Madhu

c pointers

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

查询C中的激活记录

以下是我不明白的代码.

#include<stdio.h>

int main(int argc, char *argv[])
{
      int num;

      printf("\n Number: " );
      scanf("%d", &num);

      if (num >= 0)
      {
           int abs = num;
      }
      else
      {
            int abs = -num;
      }

      {
          int abs;
          printf("\n Values are %d %d", num ,abs);
       }
      return 0;
}
Run Code Online (Sandbox Code Playgroud)

当我输入一个数字为4时,输出是Values are 4 4
当我输入一个数字为-4时,输出为Values are -4 4

我无法理解它是如何打印绝对值的?在if循环和else循环中定义的变量abs应该在退出后被释放.

请告诉我.

问候,黑暗

c

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

析构函数的实现作为一个函数?

我有一个关于析构函数的类实现的问题.我理解正确的方法是使用〜运算符,但请看下面的代码:

class foo
{
private:
int* abc;

public:
foo()
{
abc = new int(2);
}

~foo()
{
delete abc;
}

void func()
{
delete abc;
}
}
Run Code Online (Sandbox Code Playgroud)

现在让我们说主要功能定义如下:

int main(int argc, char** argv)
{
foo a;
a.func();
}
Run Code Online (Sandbox Code Playgroud)

在main中调用func()函数时,它的工作方式与析构函数完全相同吗?在任何类似的设置中,析构函数和此函数之间有什么区别?

c++ oop destructor

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

我的代码如何工作,我无法理解流程?

如果 a=16 b=24,我不明白为什么输出 = 8

int a,b,t;
scanf("%d %d", &a , &b);
while(b){
    t = a%b;
    a = b;
    b = t;
}
printf("%d\n", a);
Run Code Online (Sandbox Code Playgroud)

c loops while-loop

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