下面的代码编译得很好...
int main (int argc, const char * argv[]) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
// VARIABLES
MDD *MDD_structure;
NSString *mddFile = @"/Users/Gary/Code/Mdd/xTest.mdd";
NSFileHandle *inFile;
NSData *inBuffer;
int MDD_fCount;
int MDD_vCount;
// OPEN FILE ON DISK
inFile = [NSFileHandle fileHandleForReadingAtPath:mddFile];
if(inFile == nil) NSLog(@"FILE: Open ... ERROR");
else NSLog(@"FILE: Open ... OK");
// READ FRAME COUNT
inBuffer = [inFile readDataOfLength:sizeof(int)];
[inBuffer getBytes:&MDD_fCount length:sizeof(int)];
MDD_fCount = CFSwapInt32BigToHost(MDD_fCount);
NSLog(@"FC: %d", MDD_fCount);但是当我通过静态分析器"CLANG LLVM1.0“运行它时,我得到了以下结果...
warning: Pass-by-value argument in function call is undefined.
MDD_fCount = CFSwapInt32BigToHost(MDD_fCount);
^ ~~~~~~~~~~
1 diagnostic generated.谁能告诉我我错过了什么?
加里
发布于 2009-12-17 00:17:41
你会得到一个错误,因为clang不相信简单地将变量的地址传递给函数就等同于给它赋值。您可能可以将MDD_fCount初始化为0,以消除错误。
发布于 2009-12-17 00:23:06
这意味着你还没有初始化MDD_fCount。有关更多信息,请参阅this blog post和this other question。
https://stackoverflow.com/questions/1915742
复制相似问题