我了解到if或者#if都可以用于条件检查.由于我们可以检查条件if,我们为什么要使用预处理器#if?
如果我用#if而不是代码,我的代码会有什么不同if?
哪一个更好用,为什么?
在我的代码中,我无法初始化for循环初始化部分中的变量.当我写这段代码时:
long unsigned int arr[3][3];
char str[50];
for(;gets(str);)
{
int temp=0;
for(int i,j,k=0; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);
Run Code Online (Sandbox Code Playgroud)
编译器显示
error: 'for' loop initial declarations are only allowed in c99 mode
Run Code Online (Sandbox Code Playgroud)
我不知道这意味着什么,但如果我写这样的代码:
long unsigned int arr[3][3];
char str[50];
for(;gets(str);)
{
int temp=0;
int i,j,k=0;
for(; str[k]!='\0'; k++){ if(str[k]!=' ')temp=temp*10+(str[k]-48);
Run Code Online (Sandbox Code Playgroud)
它工作正常.为什么会这样?
当我编写这段代码时(仅用于测试.这件事也会出现其他类型的代码):
y_quan=typecast(y_quan,'int8');
Run Code Online (Sandbox Code Playgroud)
y_quan的维度发生了巨大变化.在进行类型转换之前,它是双类型1X15310矩阵.但是在这个类型转换操作之后它变成了int8型1X122480矩阵.为什么会这样?有人请解释一下.我怎么能阻止这个?