zoukankan      html  css  js  c++  java
  • ( # #@ ## 在define中的应用)或( 连接两个字符串或者两个数字、强制转化成单引号、强制转化成双引号 )附加字符串强制转化成数字

    1. 修改成常用的几个连接
    表示L与x连接。

    以下来自网络:
    #define Conn(x,y) x##y
    #define ToChar(x) #@x
    #define ToString(x) #x

    x##y表示什么?表示x连接y,举例说:
    int n = Conn(123,456); 结果就是n=123456;
    char* str = Conn("asdf", "adf")结果就是 str = "asdfadf";
    怎么样,很神奇吧

    再来看#@x,其实就是给x加上单引号,结果返回是一个const char。举例说:
    char a = ToChar(1);结果就是a='1';
    做个越界试验char a = ToChar(123);结果是a='3';
    但是如果你的参数超过四个字符,编译器就给给你报错了!error C2015: too many characters in constant :P

    最后看看#x,估计你也明白了,他是给x加双引号
    char* str = ToString(123132);就成了str="123132";

    2. 把字符串强制转化成数字

    #include<stdlib.h>
    #include<stdio.h>
    int main()
    {
        char *string, *stopstring;
        double x;
        int base;
        long b ;
        
        string = "-1234This5678stopped it";//源字符串
        b = strtol(string, &stopstring, 10);//转换
        printf("string = %s
    ", string);//打印原始字符串
        printf("strtol = %d
    ", b);//打印转换结果
        printf("Stopped scan at: %s
    ", stopstring);//打印不合条件而终止的字符
      
        return 0;
    }

    附上郭博士给我说的,后期在分析吧

    RTM_EXPORT(system)
    
    
    const char __rtmsym_##symbol##_name[] SECTION(".rodata.name") = #symbol;     
    const struct rt_module_symtab __rtmsym_##symbol SECTION("RTMSymTab")= 
    {                                                                     
        (void *)&symbol,                                                  
        __rtmsym_##symbol##_name                                          
    };
    
    
    const char __rtmsym_system_name[] SECTION(".rodata.name") = system;
    
    const struct rt_module_symtab __rtmsym_system SECTION("RTMSymTab")= 
    {
        (void *)&system,
        __rtmsym_system_name
    };
    
    
    #define ADD(x)    (x)+y
    #define ADD(x)    y_#x
    
    
    ADD(a)    a + y
    
    ADD(a)    y_a
  • 相关阅读:
    容器源码分析之——ArrayList
    JVM详解(四)--运行时数据区:程序计数器(PC 寄存器)
    JVM详解(三)-- 运行时数据区:概述和线程
    JVM详解(二)-- 第2章 类加载器子系统
    vue组件传入样式参数
    vue重定向父路径无法向子路径传递参数
    cpp引用内部的元素指针变化问题
    无法获取vuex中对象的属性
    前端笔记收藏
    vue组件传参
  • 原文地址:https://www.cnblogs.com/mrsandstorm/p/5827621.html
Copyright © 2011-2022 走看看