当前位置: 技术问答>linux和unix
简单小代码:不用计算、不用位操作来实现 加 1
来源: 互联网 发布时间:2015-12-31
本文导语: 特此说明,这点小技俩,仅供娱乐~ 用位操作虽然可以实现加1,但似乎还得要 循环 来帮助。 最简单的事情莫过于让 编译器 来帮你实现 加 1 功能。 int _inc(int i) { char (*p)[2] = (char (*)[2])i; ...
特此说明,这点小技俩,仅供娱乐~
用位操作虽然可以实现加1,但似乎还得要 循环 来帮助。
最简单的事情莫过于让 编译器 来帮你实现 加 1 功能。
int _inc(int i)
{
char (*p)[2] = (char (*)[2])i;
return (int)&((*p)[1]);
}
int main()
{
printf("%dn", _inc(100));
return 0;
}
http://www.chinaunix.net/jh/23/837603.html
用位操作虽然可以实现加1,但似乎还得要 循环 来帮助。
最简单的事情莫过于让 编译器 来帮你实现 加 1 功能。
int _inc(int i)
{
char (*p)[2] = (char (*)[2])i;
return (int)&((*p)[1]);
}
int main()
{
printf("%dn", _inc(100));
return 0;
}
http://www.chinaunix.net/jh/23/837603.html
|
up
|
int _int( int i )
{
__asm( "movl 8(%esp), %eax" );
__asm( "inc %eax" );
}
|
这样是不是简化点?
int _inc(int i)
{
char * p = (char *) i;
return (int)&(p[1]);
}
int _inc(int i)
{
char * p = (char *) i;
return (int)&(p[1]);
}