/*

*Filename: hl.c

*Author: hemmingway <hemmingway@163.com>

*Description: this a misc practice program

*Compile with: gcc -g -Wall -o hl.debug hl.c

*/



#include <stdio.h>

#include <time.h>

#include <stdlib.h>

#include <string.h>



#define ENABLE_DEBUG 1 //else, comment this line

#ifdef ENABLE_DEBUG

#define DEBUG_LOG(fmt,...) fprintf(stderr, "%s:%d: " fmt "\n", \

__func__, __LINE__, ## __VA_ARGS__)

#else

#define DEBUG_LOG(fmt, ...) do {} while (0)

#endif



/*question: does this line can be works??*/

// #define DEBUG_LOG(fmt,...) fprintf(stderr, "%s:%d: " (fmt) "\n",__func__, __LINE__, ## __VA_ARGS__)





int max(int i, int j)

{

if(i>i)

return (i);

else

return (j);

}



int main()

{

int i, j, k;

i = 3;

j = 5;



time_t timep;

struct tm *tim;

char *p;

timep = time((time_t *)NULL);

tim = gmtime(&timep);

p = malloc(30*sizeof(char));

strncpy(p, ctime(&timep), 30);


printf("hello, world..now time is:%d-%d-%d %d:%d:%d\n", 1900 + tim->tm_year,1+ tim->tm_mon,

tim->tm_mday,8 + tim->tm_hour, tim->tm_min, tim->tm_sec);

k = max(i,j);

printf("ctime: %s, max: %d\n",p, k);



//test c99 comment



//c89

printf( "The file is %s. \n", __FILE__ );

printf( "The date is %s. \n", __DATE__ );

printf( "The time is %s. \n", __TIME__ );

printf( "This is line %d. \n", __LINE__ );

printf( "__STDC__ is: %d \n", __STDC__ );





//c99

printf( "This function is %s. \n", __func__ ); //__func__ c99的当前调用的函数名



//test debug_log



printf("\n\ntest debug log macro.\n\n");



DEBUG_LOG("Registering domain event cbs");

DEBUG_LOG("debug time, ctime: %s", p);





free(p);


return 0;

}