posts - 174, comments - 59, trackbacks - 0, articles - 0
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
@fietiger
恩,我现在也觉得这样不错
#define DEBUG
#define LOG_FILE __FILE__".log"

#ifdef DEBUG
#define dbgprint(format,args...) fprintf(stderr, format, ##args)
#define logprint(format,args...) {FILE* fp=fopen(LOG_FILE,"a+");fprintf(fp,"line %d: "format,__LINE__,##args);fclose(fp);}
#else
#define dbgprint(format,args...)
#define logprint(format,args...)
#endif
一个更好的宏是这样的
#define dbg(x) cerr<<#x<<" : "<<x<<endl
首先他可以输出各种类型的x,其次他输出到错误流,在OJ上提交时即使不注释掉也不会影响评判结果
原来这个造rank[]的方法也属于离散化。
每次都是这样,明明是我自己想出来的东西,总是“古已有之”。
re: 费马小定理的证明 魔のkyo 2008-06-03 22:45
补充:关于欧拉定理的证明,只需要补充缩系的概念,证明方法类似。
re: 交换a,b值的疑问 魔のkyo 2007-02-06 01:18
#include <iostream>

using namespace std;

void MySwap1(int& a,int& b)
{
printf("Swap1 %p %p\n",&a,&b);
_asm {
mov eax,a
mov ebx,b
xor ebx,eax
xor eax,ebx
xor ebx,eax
mov a,eax
mov b,ebx
}
printf("Swap2 %p %p\n",&a,&b);
}

int main()
{
int a,b;
scanf("%d %d",&a,&b);
printf("main1 %p %p\n",&a,&b);
MySwap1(a,b);
printf("main2 %p %p\n",&a,&b);
printf( "a=%d,b=%d\n" ,a,b);
}
发觉问题处在引用上,只是交换了引用的地址
re: 关于运行时类型识别typeid 魔のkyo 2006-05-12 18:32
在询问zhuyun老师之后得到了解答:
选择菜单Project->settings->c/c++->category->c++ language,将Enable Run-Time Type Infomation(RTTI)选中
VC默认不启动RTTI,即“运行时期类型识别”,如果在你的程序用到了RTTI,比如typeid,你必须明确告诉编译器启动RTTI,这样VC才能正确编译