小编KKs*_*san的帖子

在代码中创建argc argv

嗨非常新手的问题,但我无法弄清楚:

我有一个名为bar的函数

class foo
{
    public:
        bool bar(int argc, char** argv);
}
Run Code Online (Sandbox Code Playgroud)

argv应该包含

"--dir" and "/some_path/"
Run Code Online (Sandbox Code Playgroud)

如何创建argv和argc以便我可以将它们传递到bar()?我尝试了很多方法,但我无法获得指针和类型转换.

因此,我不想从命令行获取argv,而是想在代码中创建它.

谢谢你的任何输入!

c++ argv argc

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

std :: map <struct,int>我需要析构函数吗?

嗨,在一个cpp类XI有一个

class X{
    private:
        std::map<some_struct, int> C;
}
Run Code Online (Sandbox Code Playgroud)

其中some_struct定义为:

typedef struct{
    int a;
    int b;
    int c;
}some_struct;
Run Code Online (Sandbox Code Playgroud)

我的问题是:我是否需要在X的析构函数中指定关于地图C的任何内容?如果是,X的析构函数应该为地图C做什么动作?

c++ destructor class

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

C - 32位机器上的无符号长整数加倍

嗨,我有两个问题:

  1. uint64_t vs double,它覆盖正数的范围限制更高?

  2. 如果只需要double的整数部分,如何将double转换为uint64_t.

由于定义了双重,直接铸造显然不起作用.

很抱歉有任何困惑,我在谈论32位机器上的64位双C语言.

至于一个例子:

//operation for convertion I used:
double sampleRate = (
                      (union { double i; uint64_t sampleRate; })
                      { .i = r23u.outputSampleRate}
                    ).sampleRate;

//the following are printouts on command line
//         double                               uint64_t
//printed by   %.16llx                           %.16llx
outputSampleRate  0x41886a0000000000      0x41886a0000000000 sampleRate

//printed by   %f                                    %llu
outputSampleRate  51200000.000000        4722140757530509312 sampleRate
Run Code Online (Sandbox Code Playgroud)

所以这两个数字仍然是相同的位模式,但是当打印出小数时,uint64_t是完全错误的.谢谢.

c double primitive unsigned

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

标签 统计

c++ ×2

argc ×1

argv ×1

c ×1

class ×1

destructor ×1

double ×1

primitive ×1

unsigned ×1