C skills

来源:互联网 发布:三菱编程手册da 编辑:程序博客网 时间:2024/05/11 03:55

1):define 中的#和##

## 是连接符号,连接两个字符串
#   是把名字代替成参数中的字符串

#define PRINTF(value)  printf( #value " = %d/n", value );

  #define FUNC(arg)
 void print##arg(void)
 { 
       printf(#arg " = %d", arg);
 }

 FUNC(size);
 展开后生成代码:void printsize(void)
 { 
      printf("size" " = %d", size );
 }

2):try_module_get()

static inline int try_module_get(struct module *module)
{
     int ret = 1;

     if (module) {
     preempt_disable();

     if (likely(module_is_live(module))) {
        __this_cpu_inc(module->refptr->incs);
        trace_module_get(module, _THIS_IP_);
    } else
        ret = 0;

     preempt_enable();
 }
      return ret;
}

 

3):pr_info()

#define pr_info(fmt, ...) \
        printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)

 

4)printk("Calling : %pF\n", fn);
fn是函数的指针,可以直接打印出函数指针所指向函数的名字

 

 

原创粉丝点击