C中的“-1L”,“1L”等是什么意思?

例如,在ftell引用中,它说



这是什么意思 ? “1L”是什么类型?

如果发生错误,为什么不返回NULL呢?

最佳答案

L指定数字为long类型,因此-1L是设置为负数的long,而1L是设置为正数的long

至于为什么ftell不仅仅返回NULL,这是因为NULL用于指针,并且在这里返回了long。请注意,未使用0,因为0ftell返回的有效值。

捕获这种情况涉及检查非负值:

long size;
FILE *pFile;

...

size = ftell(pFile);
if(size > -1L){
    // size is a valid value
}else{
    // error occurred
}

关于c - C语言中的 “-1L”是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4115566/

10-11 15:29