关于在 if 语句里定义局部变量的有关问题

关于在 if 语句里定义局部变量的问题
如果我想达到一种局部定义变量,例如 if( int x=2 && x++ ) printf("%d",x); 使x 显示为 3的效果,应该怎么写?
(当然这么写是错的)
这样写相当于是if ( int x= (2 && x++) ) 的效果
但是又不能 if( (int x=2) && x++ ) 会出错
请问应该怎么达到目的?

------解决方案--------------------
致ontrace:
1.首先对上面的错误表示歉意,由于我的大意没考虑到运算优先级的问题.
2.第1个代码我的机器上确实不行 (winxp sp2+ vc++6.0 ),提示:d:\my documents\桌面\新建文件夹\test.c(5) : error C2059: syntax error : 'type'
3.既然我们不能找到错误之所在(恕本人愚笨,想了很长时间,不得其果),而且这样做的概率极小,我们就不能因追求最优形态而放弃代码的可读性,通用性和可移植性

------解决方案--------------------
探讨
你自己已经写出来了:
if( (int t1 = 长表达式1) > 30 || (int t2=长表达式2)> 30 || int t3=长表达式3) > 30 || t1+ t2+ t3 > 30 )
这样写通不过的,如果能过我就不会发这个帖子了。