小编use*_*507的帖子

为什么有人会在C中使用这种类型的演员?float的引用被强制转换为int指针,然后解除引用

我正在阅读Carmack的快速反平方根算法,并注意到这一点:

float x;
// ... //
int i = *(int*)&x;
Run Code Online (Sandbox Code Playgroud)

为什么有人会选择使用这种奇怪的铸造而不仅仅是以下?

int i = (int)x;
Run Code Online (Sandbox Code Playgroud)

c pointers casting

9
推荐指数
2
解决办法
323
查看次数

始终返回相同向量的函数

我正在尝试编写一个返回向量的实用函数.返回的向量将始终具有相同的条目.我用它来过滤enum(Directions),以便客户端可以获得所需的子集.

以下是我希望如何解决问题的示例:

std::vector<Directions> horizontalDirections()
{
    static std::vector<Directions> toReturn;
    if (toReturn.size() == 0)
    {
        toReturn.push_back(Left);
        toReturn.push_back(Right);
    } 
    return toReturn;
}
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

c++ static function

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

编写没有库类的库类的构造函数

我正在使用第三方库中的结构将参数传递给库函数.

我希望有一个构造函数可以让我快速创建一个结构,但库不提供一个.

有没有办法在库外部定义我可以在自己的代码中使用的构造函数?如果没有,那么其他人是否会看到一个优雅的解决方案?

我的动机是我会节省一些速度,因为我不必两次构造每个结构成员.

此外,我的代码更具可读性,因为我可以将结构创建压缩成一行而不是多行.

我想离开这个:

Point newPoint;
newPoint.x = someXValue;
newPoint.y = someYValue;
Run Code Online (Sandbox Code Playgroud)

对此:

Point newPoint(someXValue, someYValue);
Run Code Online (Sandbox Code Playgroud)

c++ constructor struct

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

标签 统计

c++ ×2

c ×1

casting ×1

constructor ×1

function ×1

pointers ×1

static ×1

struct ×1