zoukankan      html  css  js  c++  java
  • notices for complex macro definition in C

    notices for complex macro definition in C

    1. space is prohibitted after the backslash() 

    otherwise the below build error will be prompted:

    backslash and newline separated by space

    2. be noticed to -> of structure pointer in macro definition and & in macro reference

    #define CUSTOM_PRINT(pt_examp_struct)      
    do                       
    {                        
    printf("age: %d ", pt_examp_struct->ui1_age);      
    printf("name: %d ", pt_examp_struct->ac_name);      
    } while(0)

    reference:
    T_EXAMP_STRUCT t_examp_struct = {26, "hello world!"}
    CUSTOM_PRINT(&t_examp_struct);

    build error will be prompted when compiling.
    reason: expanding the macro:
    printf("age: %d ", &t_examp_struct->ui1_age);

    t_examp_struct is a structure. -> operator has the higher priority than &. t_examp_struct->ui1_age is wrong.

    correct it:
    #define CUSTOM_PRINT(pt_examp_struct)         
    do                              
    {                              
    T_EXAMP_STRUCT *pt_examp_struct = &t_examp_struct;    
    printf("age: %d ", pt_examp_struct->ui1_age);        
    printf("name: %d ", pt_examp_struct->ac_name);        
    } while(0)

    reference:
    CUSTOM_PRINT(t_examp_struct);

  • 相关阅读:
    表单元素
    Form表单、四种常见的POST请求提交数据方式、MIME
    html table
    jsop
    如何成为一名优秀的前端工程师
    CSS代码检查工具推荐:CSS Lint
    前端CSS规范整理
    使用渐进式 JPEG 来提升用户体验
    移动前端系列——移动页面性能优化(转)
    HTML5页面资源预加载(Link prefetch)功能加速页面加载速度
  • 原文地址:https://www.cnblogs.com/aspirs/p/7117072.html
Copyright © 2011-2022 走看看