?? rn_dprint.h
字號:
/*-------------------------------------------------------------------------- Copyright 1999,2001, Dan Kegel http://www.kegel.com/ Copyright 2003 Ixia http://www.ixiacom.com/ See the file COPYING This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA--------------------------------------------------------------------------*/#ifndef rn_dprint_h#define rn_dprint_h/* FIXME: prefix identifiers declared by this file with rn_ *//* This file uses __VA_ARGS__, a C99 extension (see http://home.tiscalinet.ch/t_wolf/tw/c/c9x_changes.html#Preprocessor) * gcc 3.0 and later is fine; not sure when or if msvc will start supporting it. * It also tries to use the __attribute__ extension from gcc, if gcc is 3.2.0 or later. * See also http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=3481 */#include <stdio.h>#include <rn_eclock.h>#define __GCC_VERSION(major,minor,patchlevel) (((major)*10000)+(minor*100)+(patchlevel))#define __GCCV __GCC_VERSION(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__)#if defined(__GNUC__) && (__GCCV >= __GCC_VERSION(3,2,0))#define attribute(...) __attribute__(__VA_ARGS__)#else#define attribute(...)#endif#ifdef __cplusplusextern "C" {#endif/* The default log function - in case you want to restore it. * If flags is nonzero, prefixes line with info about caller. */attribute((format (printf, 5, 6))) void dprint_fn_default(int flags, int line, const char *file, const char *callername, const char *format, ...);/* Set only via dprint_set_fn() */extern attribute((format (printf, 5, 6))) void (*dprint_fn)(int flags, int line, const char *file, const char *callername, const char *format, ...);#ifdef __cplusplus}#endif/* Call this to install your own logging function. * You should declare yours exactly like dprint_fn_default above, * with extern "C", attribute, and everything; then pass * its name to dprint_set_fn(). */void dprint_set_fn(attribute((format (printf, 5, 6))) void (*fn)(int flags, int line, const char *file, const char *callername, const char *format, ...));/* Helper macro for real DPRINT */#define _DPRINT(...) do { if (dprint_fn) (*dprint_fn)(1,__LINE__,__FILE__,__FUNCTION__, __VA_ARGS__); } while (0)/* continue message started in last call to _DPRINT */#define _DPRINT_MORE(...) do { if (dprint_fn) (*dprint_fn)(0,__LINE__,__FILE__,__FUNCTION__, __VA_ARGS__); } while (0)/* Makefile will define dprint_ENABLED for debug builds *//* #define dprint_ENABLED *//* Developers may wish to rebuild with dprint_TRACE_ENABLED, but no standard build does it *//* #define dprint_TRACE_ENABLED */#ifdef dprint_ENABLED#define DPRINT(...) _DPRINT(__VA_ARGS__)#define DPRINT_MORE(...) _DPRINT_MORE(__VA_ARGS__)#else#define DPRINT(...) do { ; } while (0)#define DPRINT_MORE(...) do { ; } while (0)#endif#define LOG_ERROR(...) _DPRINT(__VA_ARGS__)#ifdef dprint_TRACE_ENABLED#define LOG_TRACE(...) _DPRINT(__VA_ARGS__)#else#define LOG_TRACE(...) do { ; } while (0)#endif#endif
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -