小编ani*_*nio的帖子

-D_XOPEN_SOURCE做什么/意味着什么?

我最近遇到了一些代码,如果没有这个arg,gcc就无法编译.我检查了gcc手册页,但没有找到这个特定的选项.我找到了XOPEN_SOURCE,但几乎没有解释它的作用.

有人可以详细说明吗?我知道-D_XOPEN_SOURCE可以设置为不同的值,这样400,600但什么的呢?

c gcc

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

未使用包含C/C++中的有害物质吗?

未使用包含的负面后果是什么?

我知道它们导致二进制大小增加(或者它们?),还有其他什么?

c++

72
推荐指数
6
解决办法
5387
查看次数

如何在python中创建固定大小的格式化字符串?

我想创建一个固定大小的格式化字符串,字段之间的位置固定.一个例子更好地解释,这里有明显3个不同的字段,字符串是固定大小:

XXX        123   98.00
YYYYY        3    1.00
ZZ          42  123.34
Run Code Online (Sandbox Code Playgroud)

如何在python(2.7)中将这种格式应用于字符串?

python python-2.7

54
推荐指数
1
解决办法
9万
查看次数

在HashMap中加倍

我正在考虑使用Double作为HashMap的关键,但我知道浮点数比较是不安全的,这让我思考.Double类的equals方法也不安全吗?如果那样则意味着hashCode方法可能也是错误的.这意味着使用Double作为HashMap的关键将导致不可预测的行为.

任何人都可以在这里证实我的任何猜测吗?

java hashcode

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

C++ const问题

如果我这样做:

// In header 
class Foo {
void foo(bar*);
};

// In cpp
void Foo::foo(bar* const pBar) {
//Stuff
}
Run Code Online (Sandbox Code Playgroud)

编译器不会抱怨Foo :: foo的签名不匹配.但是如果我有:

void foo(const bar*); //In header
void Foo::foo(bar*) {} //In cpp
Run Code Online (Sandbox Code Playgroud)

代码将无法编译.

到底是怎么回事?我正在使用gcc 4.1.x.

c++ gcc const

8
推荐指数
3
解决办法
1945
查看次数

为什么if语句中的表达式顺序很重要

假设我有一个IF条件:

if (A || B) 
    ?
    |
    |
   left
{ 
   // do something  
}
Run Code Online (Sandbox Code Playgroud)

现在假设A更有可能获得真正的价值B,为什么我关心哪一个在左边?

如果我把它们都放在IF括号中,那么我知道(作为代码的程序员)需要双方.

问题是,我的教授在他的讲座上写道,我应该在左边加上"更可能的变量来接收真实".

有人可以解释一下这个好处吗?好吧,我把它放在左边......我得到了什么?运行 ?

c c++ java if-statement

7
推荐指数
3
解决办法
7582
查看次数

在Linux中,如何查找包含大多数子目录或文件的查找目录?

如何在系统中找到包含最多文件/子目录的目录?显然,聪明的答案是/,但这不是我正在寻找的.

我被告知文件系统不在节点中,所以我怀疑某处有很多文件/目录只是垃圾,我想找到它们.

我试过这个:

$ find /home/user -type d -print | wc -l
Run Code Online (Sandbox Code Playgroud)

找到特定的目录.

linux

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

应该在c ++中使用"not,and,or not_eq .."

所以看起来像这些:http://www.cplusplus.com/reference/clibrary/ciso646/是c ++中的关键字.

我的问题是.这是c ++标准的一部分吗?

主编译器是否可以依赖此功能?我知道gcc确实支持这些关键字.

最后,也许这更像是一个偏好或风格问题,但使用关键字而不是标准运算符(!,!=,&& ...等)是否有任何优势?

c++ syntax

6
推荐指数
3
解决办法
1747
查看次数

我可以告诉编译器考虑关于返回值关闭的控制路径吗?

说我有以下功能:

Thingy& getThingy(int id)
{
    for ( int i = 0; i < something(); ++i )
    {
        // normal execution guarantees that the Thingy we're looking for exists
        if ( thingyArray[i].id == id )
            return thingyArray[i];
    }

    // If we got this far, then something went horribly wrong and we can't recover.
    // This function terminates the program.
    fatalError("The sky is falling!");

    // Execution will never reach this point.
}
Run Code Online (Sandbox Code Playgroud)

编译器通常会抱怨这一点,并说"并非所有控制路径都返回一个值".这在技术上是真实的,但没有返回值的控制路径终止程序函数结束之前,因此是语义正确的.有没有办法告诉编译器(在我的情况下VS2010,但我也很好奇其他人),为了这个检查的目的,要忽略某个控制路径,而不是完全抑制警告或返回一个无意义的假人功能结束时的值?

c++ warnings g++ visual-studio-2010

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

将命名空间添加到 C++ 文件的脚本

所以我有一个巨大的代码库,需要添加一个命名空间。我没有手动执行此操作,而是想到使用 grep、xargs 和 sed 将命名空间添加到所有源文件中...

但我的技能达不到标准。理想情况下

namespace foo 
{
Run Code Online (Sandbox Code Playgroud)

将在所有包含之后添加,并在 .h 文件中的 #endif 之后添加 '}'。

对于 .cpp 文件,在所有包含之后添加“使用命名空间 foo”就足够了。

我一直在搞 sed,但还没有走多远。

任何帮助,将不胜感激。谢谢!

c++ regex linux sed

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

标签 统计

c++ ×6

c ×2

gcc ×2

java ×2

linux ×2

const ×1

g++ ×1

hashcode ×1

if-statement ×1

python ×1

python-2.7 ×1

regex ×1

sed ×1

syntax ×1

visual-studio-2010 ×1

warnings ×1