首页
社区
课程
招聘
未解决 [求助]这个是C++11以后的标准吗?
发表于: 2020-6-11 16:15 2441

未解决 [求助]这个是C++11以后的标准吗?

2020-6-11 16:15
2441
编译的报的
multi-character character constant [-Wmultichar]
obj已经完全生成了。

链接完全过不去

enum
{
    kALACFormatAppleLossless = 'alac',
    kALACFormatLinearPCM = 'lpcm'
};

========================

enum
{
    kALACFormatAppleLossless = 1
    kALACFormatLinearPCM = 2
};

网上搜的enum是赋值整数的,有点(+﹏+)~晕


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (11)
雪    币: 633
活跃值: (1143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
 'alac', 'lpcm'这是啥?
楼主写错了吧。
2020-6-11 16:41
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
jmzqwh 'alac', 'lpcm'这是啥? 楼主写错了吧。
github的alac源代码,开源的。代码就是这么写的?
2020-6-11 16:43
0
雪    币: 181
活跃值: (636)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
enum class MyVar : char 
{
    kALACFormatAppleLossless = 'alac',
    kALACFormatLinearPCM = 'lpcm'
}; 但是感觉也只能支持 'a'  <-----  一个字符啊,虽然多个可以编译过,但是会错乱
2020-6-11 16:45
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
柒雪天尚 enum class MyVar : char { kALACFormatAppleLossless = 'alac', kALACFormatLinearPCM = 'lpc ...
编译能生成obj,完全链接不过去。感觉是C++11以后的标准。
gcc 4.80过不去。
2020-6-11 16:51
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
柒雪天尚 enum class MyVar : char { kALACFormatAppleLossless = 'alac', kALACFormatLinearPCM = 'lpc ...
有没有gcc 只是c++ 14标准的,支持c++17,支持C++20的,我一个个去试。
2020-6-11 17:10
0
雪    币: 633
活跃值: (1143)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
 试了一下,VS可以写成 auto asd = 'lala';代表是一个int类型。
楼主报错可能是编译器原因吧,以前没见过这个写法就武断认为不对很抱歉,总之写法是不安全写法,直接改成数字不可以么。
2020-6-11 17:11
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个是alac源码里面截取的,kALACFormatAppleLossless 判断了 音轨的 id , 似乎是 C++的新标准

if (theInputFormat->mFormatID == kALACFormatAppleLossless)
                {
                    theInputFormat->mBytesPerFrame = 0;
                }
                else
                {
                                       theInputFormat->mBytesPerFrame = theInputFormat->mBytesPerPacket;
                                       if ((theInputFormat->mFormatFlags & 0x02) == 0x02)
                                       {
                                               theInputFormat->mFormatFlags &= 0xfffffffc;
                                       }
                                       else
                                       {
                                               theInputFormat->mFormatFlags |= 0x02;
                                       }

                }
2020-6-11 17:30
0
雪    币: 181
活跃值: (636)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
jmzqwh 试了一下,VS可以写成 auto asd = 'lala';代表是一个int类型。 楼主报错可能是编译器原因吧,以前没见过这个写法就武断认为不对很抱歉,总之写法是不安全写法,直接改成数字不可以么。
哦哦,有点道理,'abcd'的话,确实是隐式 int
2020-6-11 17:40
0
雪    币: 181
活跃值: (636)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
limee 有没有gcc 只是c++ 14标准的,支持c++17,支持C++20的,我一个个去试。
嗯,14不知道,17有看到提过
2020-6-11 17:41
0
雪    币: 1540
活跃值: (2807)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
我再继续补充吧,刚才换了gcc 7.1和gcc8.3都是报一个错误。
2020-6-11 21:04
0
雪    币: 274
活跃值: (85)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
很老的定义了,不过一般不这么写,都是自己展开写成hex
实在编不过,就修改下代码, 'alac' 改成 0x616c6163 ,lpcm = 0x6c70636d
2020-6-12 02:52
0
游客
登录 | 注册 方可回帖
返回
//