C语言变量范围,打印格式

一、变量范围及打印格式

  1、变量范围及打印格式
    int:                           4字节   -2147483648~2147483647                    %d      

    unsigned  int              4字节   0 ~ 4294967295                                       %u    (如果超出int范围,但是你用%d打印看到的只能是负数)

    long:                        4字节   -2147483648~2147483647                    2147483647:linux 2038问题(因为定义类型为long)       打印格式 %ld      unsigned long  %lu

    long long:                8字节   -9223372036854775808 ~ 9223372036854775807        打印格式 %lld

    unsigned long long:8字节  0 ~ 18446744073709551615                   打印格式  %llu

    double                       8字节   打印格式:%f(带精度)      %g(不带精度)    ,double是双精度(64位)    

    float                           4字节   打印格式:%f(带精度)      %g(不带精度)     、float 是单精度(32位)

            例:(float)100/215  如%0.3f  结果:0.465。  (float)100/200   %0.3f  结果:0.500

      区别:float和double都是用来表示实数(浮点数)数据类型,double精度更高,存储范围更大。计算机内部运算时,double消耗更多存储空间和运算时间,在不需要高精度场合,float更高效

  

    %4d  :表示不足4位全面补空格    %-4d:表示不足4位后面补空格

  

  2、如何打印函数路径,函数名,行数 

      printf("%s,%s,%d\n",__FILE__,__func__,__LINE__);      注意是两个下划线 ,区分大小写,其实函数名可以不用

   带参宏定义

      #define log_info(...)   printf(__VA_ARGS__)     //表示只打印具体数据,不带行号文件及函数名。

      对于可变参数的宏定义,您可以使用省略号 ... 来表示可变参数部分。省略号表示可以接受任意数量的参数。

      #define  log_info(format,...) printf("File: %s, Line: %d  "format,__FILE__,__LINE__,##__VA_ARGS__)    format这个字符串可以是任意  ##__VA_ARGS__:表示函数不定长参数

      示例:log_info("test:%d,%d\n",a,b);

          打印:File: src/app.c, Line: 39  test:1,2

      

 

posted @ 2023-04-11 11:46  耿通宇  阅读(622)  评论(0编辑  收藏  举报