问题描述
- C/C++的if使用问题 求指教
-
int do_init = 1;
int aes_set_key( aes_context *ctx, uint8 *key, int nbits )
{
int i;
uint32 *RK, *SK;if( do_init )//这个地方为什么可以这么写啊 不懂 { aes_gen_tables(); do_init = 0; } }
解决方案
int do_init = 1;这里你定义了do_init为1,if(do_init)的意思就是当do_init不为0时,执行if语句
解决方案二:
C/C++ if的参数如果是int值,那么0的时候为false,非0的时候为true,所以这里感觉是初始化执行一遍,然后将do_init赋值为0,之后不会再进入
解决方案三:
if里放的是逻辑是否为真(true为真,false为假),
true和false的值一般是-1和0,系统不同,也会不一样,
不过一般的理解是,false是0,true是非0的值。
所以,if( do_init )是true。
解决方案四:
这里需要注意两点:
1.int do_init ==1; 定义的do_init是全局变量,它的作用域是整个文件,所以能在函数aes_set_key中使用。
2.if(条件句) 的使用:条件句可以为变量、表达式均可,而且条件句中0 == false,非0即为ture。这里1 == ture。
解决方案五:
#if和#ifdef使用问题
c语言:求方程组的解(if的使用)
C语言中关于IF的问题..
----------------------
解决方案六:
C 里面,大于0就是true,其他的为false
时间: 2024-09-13 22:49:43