小编ash*_*ony的帖子

关于函数定义的问题(参数中的三个点......)

我遇到了一个函数定义:

char* abc(char *f, ...)
{
}
Run Code Online (Sandbox Code Playgroud)

这三个点是什么意思?

c c++

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

为什么将"指向非const的指针"转换为"指向const的指针"是不合法的

合法的指针到非const转换为指针到常量.

那么为什么将指向非const指针转换为指向const指针是不合法的呢?

例如,为什么以下代码是非法的:

char *s1 = 0;
const char *s2 = s1; // OK...
char *a[MAX]; // aka char **
const char **ps = a; // error!
Run Code Online (Sandbox Code Playgroud)

c++ pointers const const-correctness

35
推荐指数
5
解决办法
5875
查看次数

如何在执行./configure时设置ccshared = -fPIC?

我正在尝试在RHEL 5 上为QGIS构建Python 2.6 .在制作QGIS期间,我收到以下错误:

Linking CXX shared library libqgispython.so
/usr/bin/ld: /usr/local/lib/python2.6/config/libpython2.6.a(abstract.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/python2.6/config/libpython2.6.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [src/python/libqgispython.so.1.0] Error 1
make[1]: *** [src/python/CMakeFiles/qgispython.dir/all] Error 2
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

我从这个错误中得出的结论是,我需要用一些标志来构建Python 2.6 -fPIC.好的,所以我在configure.in文件中找到了它,但它检查了几个条件,并根据它分配-fPICCCSHARED标志的条件.

我所做的是,在检查所有条件后,我添加以下行以故意使用CCSHAREDas -fPIC.

CCSHARED="-fPIC";
Run Code Online (Sandbox Code Playgroud)

但它没有用..

如何在配置时指定我要设置CCSHARED …

c++ makefile g++

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

泄漏记忆的方式不同

内存泄漏的基本概念是代码执行期间新/删除操作的不匹配,可能是由于错误的编码实践,也可能是在跳过删除操作时出现错误的情况.

但最近我在一次采访中被问到一个问题,关于内存泄漏的其他方式.我没有答案.它是什么?

c++ memory-leaks

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

通过宏定义Enum/Struct有什么需要?

我指的是来自opensource项目tig的代码示例.这是一个很棒的工具!

文件:tig.c

我正在努力找到定义请求枚举的原因如下:

enum request {
#define REQ_GROUP(help)
#define REQ_(req, help) REQ_##req

        /* Offset all requests to avoid conflicts with ncurses getch values. */
        REQ_UNKNOWN = KEY_MAX + 1,
        REQ_OFFSET,
        REQ_INFO,

        /* Internal requests. */
        REQ_JUMP_COMMIT,

#undef  REQ_GROUP
#undef  REQ_
};
Run Code Online (Sandbox Code Playgroud)

甚至结构......

static const struct request_info req_info[] = {
#define REQ_GROUP(help) { 0, NULL, 0, (help) },
#define REQ_(req, help) { REQ_##req, (#req), STRING_SIZE(#req), (help) }
        REQ_INFO
#undef  REQ_GROUP
#undef  REQ_
};
Run Code Online (Sandbox Code Playgroud)

可以看出REQ_GROUP已经#defined多次造成混乱..至少对我来说.我知道可能有一个很好的理由这样做..使用宏隐藏代码中的枚举/结构定义的实际原因是什么?

c c++ macros enums struct

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

SVN合并问题

我在subversion控件下有一个目录.我创建了一个分支,只是为了测试合并的东西.我拿了一个文件,修改后备箱中的X行为"abc",并在其分支中修改了与"def"相同的X行.

然后,从分支工作目录我做了:

svn merge branchURL trunkURL .
Run Code Online (Sandbox Code Playgroud)

它更新了该文件,内容为该行号的"abc",即svn update如果我在同一个工作目录中完成它并且有人提交了" c",那么就不会给我一个相同行号的冲突.def"在存储库中.

那么svn merge在合并时只是替换内容而不会带来任何冲突吗?

如果是这样的话,当一个人不能以某种方式合并以便保持主干和分支的变化时,从主干分支出一个项目的原因将是无用的.

svn

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

CMake 编译错误..(未知的 CMake 命令“QT4_WRAP_UI”)

我正在尝试为 qgis 构建草插件..

当我尝试使用 cmake .. 配置后我收到以下错误..

CMake Error at CMakeLists.txt:78 (QT4_WRAP_UI):
   Unknown CMake command "QT4_WRAP_UI".
Run Code Online (Sandbox Code Playgroud)

我已经安装了 Qt4、PyQt 和 python2.6。

谁能帮我弄清楚这里出了什么问题?

谢谢。

cmake qgis

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

使用Qprocess运行ping,如果主机可访问,则退出代码始终为2

我正在使用Qprocess执行ping以检查主机是否在线...

问题是,无论是ping可达主机还是无法访问的主机,我从Qprocess->完成信号中接收的退出代码总是2.

我一直在QTimer中ping一个主机(我在Qt应用程序运行的客户端安装了一个文件夹)...

当我在连接到QProcess->完成信号的插槽中捕获ping返回的退出代码时,我总是收到退出代码为2 ..

我不能通过系统(ping)使用直接系统调用,因为它挂起我的应用程序ping时间是活动的...我希望它是异步的所以我切换到QProcess ...

以下是代码段:

//Pinging function called inside a timer with timout 1000        
QString exec="ping";
        QStringList params;
        if(!dBool)
        {
            //params << "-c1 1.1.1.11 -i1 -w1;echo $?";
            params <<" 1.1.1.11 -i 1 -w 1 -c 1";//wont ping
            cout<<"\n\npinging 11 ie wont ping";
        }
        else
        {
            //params << "-c1 1.1.1.1 -i1 -w1;echo $?";
            params <<" 1.1.1.1 -i 1 -w 1 -c 1";//will ping
            cout<<"\n\npinging 1 ie will ping";
        }
        ping->start(exec,params);
// the slot that connects with QProcess->finished signal …
Run Code Online (Sandbox Code Playgroud)

c++ qt ping qprocess

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

c中模块的概念

我正在通过cline进行C++ FAQ.它讨论了C++类如何比"C风格模块"更好.可以参考这里的文字.

但它没有讨论"C模块"究竟是什么.我在网上看了一些文字,但没有一个涉及这个主题.

谁能进一步解释这些概念?

c

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

我怎么能在C++中声明一个在运行时确定的变量长度的数组?

请检查这个代码,它编译并运行绝对正常..问题是,当我开始学习c ++(turbo c ++)时,我从来没有能够声明任何类型的数组作为..

datatype var[variable_set_at_runtime];
Run Code Online (Sandbox Code Playgroud)

我理所当然地认为这在最新的gcc编译器中是不可能的......但令人惊讶的是这可能......

所以我的相关问题是,那么新运营商的需求是什么?

我知道new运算符可以执行很多操作,包括在堆中运行时动态分配内存,将地址返回给该资源......等等.

我觉得有什么不同,我的代码动态地在堆栈上分配内存,而新的代码在堆上运行?这是唯一的区别......

写完这样的东西后,我真的很惊讶,因为当我开始学习c ++时,我无法做到这一点......为了添加它,我也能为自定义数据类型做到这一点......: - O

#include<iostream>
using namespace std;
struct A
{
    int a;
    int b;
};
int main()
{
    int a;
    cin>>a;
    int ch[a];
    for(int i=0;i<a;i++)
        ch[i]=i+1;
    for(int i=0;i<a;i++)
        cout<<"\n\nch=="<<ch[i];
    A obj[a];
    cin>>obj[a-1].a;
    cin>>obj[a-1].b;
    cout<<"\n\n obj.a,obj.b=="<<obj[a-1].a<<" , "<<obj[a-1].b;
}
Run Code Online (Sandbox Code Playgroud)

请说清楚..

谢谢.

c++ new-operator

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

您将如何纠正无响应的应用程序?

刚才我接受了ca(Computer Associates)的C++开放采访.

问:有一个应用程序连续运行了几天......有一天它变得无响应/被绞死.你怎么调试/纠正应用程序.你的第一步是什么?

答:我首先回答...检查内存使用情况详细信息/ CPU使用情况.如果某些所需资源可用,则检查...或者如果它是网络绑定的,如果网络是实时的..等等.

问:他告诉......这些都是肤浅的东西......假设没有这样的问题......那么?

答:我告诉最好的方法是检查调试日志是否已启用..如果它们不是..给客户一个启用调试的应用程序并在现场测试它.因为应用程序是间歇性挂起的......很难通过任何其他方式检测为什么它会没有响应.调试日志会告诉我应用程序什么时候开始生气,因为找到根本原因的具体操作负责需要知道,调试日志是我认为最好的选择.

面试官转向另一个问题说..好吧.

那么,我的回答是否足够好.还有一个优秀的程序员会遵循的其他方法吗?

c++

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

如何将变量,列表,哈希传递给函数作为引用并在不返回的情况下获取调用者中的更改

我需要将变量,列表和哈希传递给子例程,并从中获取更改而不返回。

此代码无法完成工作。

sub foo{
    my $one = {$_[0]};   
    my @list = @{$_[1]};
    my %hash = %{$_[2]};
    print("\n inside foo: ${one}\n");
    print("\n inside foo: $one @list $hash{'key'}\n");
    $one = 2;
    @list = (4,5,6);
    my %hash2;
    $hash2{'key'} = 'valueModified';    
    %hash = %hash2;
    print("\n inside foo after Mod: $one\n");
    print("\n inside foo after Mod: $one @list $hash{'key'}\n");
}

my $one = 1;
my @list = (1,2,3);
my %hash;
$hash{'key'} = 'value';
my @allLocalArgs = (\$one,\@list,\%hash);
foo(\@allLocalArgs);
print("\nafter foo modification: $one @list $hash{'key'}\n");
Run Code Online (Sandbox Code Playgroud)

输出: …

arrays perl reference list

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

将数组转换为字符串,并在字符串中嵌入换行符

我需要将perl数组转换为单个字符串变量,其中包含用换行符分隔的所有数组项。

my $content = "";
@names=('A','C','C','D','E');
$content = $content . join($", @names) . "\n";
print $content;
Run Code Online (Sandbox Code Playgroud)

我打算将输出如下所示:

A
C
C
D
E
Run Code Online (Sandbox Code Playgroud)

但我得到:

A C C D E
Run Code Online (Sandbox Code Playgroud)

为什么不\n兑现换行符?

arrays perl

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