我开始学习/使用C ++,Ruby背景。
有人可以帮我解决下面的代码吗?
我不知道出了什么问题,但它导致了这条错误消息:
C ++:警告:与字符串文字的比较结果未指定 行为[-Waddress]
void OnUserConnect(LocalUser* user)
{
if (user->MyClass->name.c_str() == "user") {
ServerInstance->SNO->WriteToSnoMask('a', "Triggered: %s", user->MyClass->name.c_str());
}
}
答案 0 :(得分:3)
您的比较user->MyClass->name.c_str() == "user"
会比较两个指针,以及两个永远不会相同的指针。
由于您似乎正在使用std::string
,因此可以直接使用等式comparison operator而无需获取指针:
if (user->MyClass->name == "user") { ... }
如果 由于某种奇怪的原因,您希望使用C风格的字符串指针进行比较,则必须使用std::strcmp
。
答案 1 :(得分:0)
您无法比较$('#container').highcharts
({
chart: {
type: 'pie',
options3d: {
enabled: true,
alpha: 45,
beta: 0
}
},
title: {
text: 'Browser market shares at a specific website, 2014'
},
tooltip: {
pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
depth: 35,
dataLabels: {
enabled: true,
format: '{point.name}'
}
}
},
series: [{
type: 'pie',
name: 'Browser share',
data: [
{name:'Firefox',
y:45},
{name:'Firefox123',
y:10}
]
}]
});
变量和char*
字面值。如果要使用此比较,则必须使用const char*
函数。您可以将以下条件替换为您的
strcmp