我试图在c中初始化一个新的struc.
我的语法有什么问题?
AddressItem_Callback_ContextType *context;
//check if icons need to be downloaded
if (pEntity->cBigIcon[0] != 0){
if (res_get(RES_BITMAP,RES_SKIN, pEntity->cBigIcon) == NULL){
context = {pEntity->iID, pEntity->cBigIcon};
//context->Icon = pEntity->cBigIcon;
//context->iID = pEntity->iID;
res_download(RES_DOWNLOAD_IMAGE, pEntity->cBigIcon, NULL, "",TRUE, 1, addressItem_icon_download_callback, context );
}
}
Run Code Online (Sandbox Code Playgroud)
我也得到了语法错误:
AddressItem_Callback_ContextType *context = {0,NULL};
//check if icons need to be downloaded
if (pEntity->cBigIcon[0] != 0){
if (res_get(RES_BITMAP,RES_SKIN, pEntity->cBigIcon) == NULL){
//context = {pEntity->iID, pEntity->cBigIcon};
context->Icon = pEntity->cBigIcon;
context->iID = pEntity->iID;
res_download(RES_DOWNLOAD_IMAGE, pEntity->cBigIcon, NULL, "",TRUE, 1, addressItem_icon_download_callback, context );
}
}
if (pEntity->cSmallIcon[0] != 0){
if (res_get(RES_BITMAP,RES_SKIN, pEntity->cSmallIcon) == NULL){
//context = {pEntity->iID, pEntity->cSmallIcon};
context->Icon = pEntity->cSmallIcon;
context->iID = pEntity->iID;
res_download(RES_DOWNLOAD_IMAGE, pEntity->cSmallIcon, NULL, "",TRUE, 1, addressItem_icon_download_callback, context );
}
}
Run Code Online (Sandbox Code Playgroud)
那么这个(3)应该有效吗?
AddressItem_Callback_ContextType context = {0,NULL};
//check if icons need to be downloaded
if (pEntity->cBigIcon[0] != 0){
if (res_get(RES_BITMAP,RES_SKIN, pEntity->cBigIcon) == NULL){
//context = {pEntity->iID, pEntity->cBigIcon};
context.Icon = pEntity->cBigIcon;
context.iID = pEntity->iID;
res_download(RES_DOWNLOAD_IMAGE, pEntity->cBigIcon, NULL, "",TRUE, 1, addressItem_icon_download_callback, context );
}
}
if (pEntity->cSmallIcon[0] != 0){
if (res_get(RES_BITMAP,RES_SKIN, pEntity->cSmallIcon) == NULL){
//context = {pEntity->iID, pEntity->cSmallIcon};
context.Icon = pEntity->cSmallIcon;
context.iID = pEntity->iID;
res_download(RES_DOWNLOAD_IMAGE, pEntity->cSmallIcon, NULL, "",TRUE, 1, addressItem_icon_download_callback, context );
}
}
Run Code Online (Sandbox Code Playgroud)
context = {pEntity->iID, pEntity->cBigIcon};
Run Code Online (Sandbox Code Playgroud)
{} 初始化列表只能在声明时使用,不能在赋值表达式中使用.
你必须在两个赋值语句中将其分解(为此你还必须初始化未初始化的context指针).