C语言变量名转字符串的方法

C语言中将变量名转换成字符串使用的是#符号,来看下边两个宏定义:

#define name2str(name) (#name)
#define print_val(x) printf(#x" = %d\n", x)

使用的时候自动将相应的变量名转换成字符串,示例代码:

int main()
{
    int a = 10;
    short b = 11;
    char c = 12;
    void *addr = (void *)123456;
    int xyz = 100;

    printf("welcome to visit http://blog.csdn.net/veabol\n");
    printf("%s = %d\n", name2str(xyz), xyz);
    print_val(a);
    print_val(b);
    print_val(c);
    print_val(d);

    return 0;
}

输出内容:

Welcome to visit http://blog.csdn.net/veabol
xyz = 100
a = 10
b = 11
c = 12
addr = 123456

原文链接:

https://blog.csdn.net/Veabol/article/details/76491792

原文地址:https://www.cnblogs.com/zzdbullet/p/9928006.html

时间: 2024-08-27 17:36:17

C语言变量名转字符串的方法的相关文章

将变量名变为字符串

将变量名 变为字符串的方法,很神奇,今天刚发现 #include <iostream> using namespace std; #define _showMem(str,v) showMem(#str,v) struct student { string name; int age; char sex; }; void showMem(const char * str,int v) { cout<<str<<" "<<v<<

查找jar包中.class文件关键字(变量名,字符串)

有时查看日志,常常会发现由框架底层打印的错误日志.要修改这个错误的时候,如果不是对框架特别熟悉,就需要按照可能产生这个错误日志的流程一步一步找,一时半会不一定能找到.比如本人最近对smartfoxserver搭建的服务器做压测的时候,发现最大等待线程数超过20就会打印错误日志,然后就一直在smartfoxserver接受请求的反编译代码里找该错误输出,花了很长时间一直没找到.然后我在想能否用inputstream来查询字符串,试验代码如下: import java.io.BufferedRead

c语言变量名和地址的关系

在汇编编译器编译时直接将变量名转换成内存地址,变量名并不占内存空间 在编译的时候编译器会把程序中出现的所有变量名都换成相对内存地址,变量名不占内存 变量名不占空间 变量:用来标识(identify)一块内存区域,这块区域的值一般是可以更改的,这就是它"变"的由来,但是我们可以通过使用如const等一些修饰符号来限定这一内存区域的操作特性(characteristic),即变量的操作特性.用const修饰的使变量不能更改的就和常量一样的变量叫做常变量. 变量名:是一个标识符(identi

C语言中将数字转换为字符串的方法(转自c语言中文网)

C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子: # include <stdio. h># include <stdlib. h> void main (void) { int num = 100; char str[25]; itoa(num, str, 10); printf("The number 'num' is %d and the string 'str' is %

C语言中将数字转换为字符串的方法

C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串.以下是用itoa()函数将整数转换为字符串的一个例子: # include <stdio. h># include <stdlib. h>void main (void);void main (void){    int num = 100;    char str[25];    itoa(num, str, 10);    printf("The number 'num' is %

[C语言]判断C语言变量名是否合法

Code: 1 #include <stdio.h> 2 #include <string.h> 3 int main() 4 { 5 int n,i; 6 scanf("%d",&n); 7 while(n--){ 8 char a[50]; 9 gets(a); 10 if((a[0]>='a'&&a[0]<='z')||(a[0]>='A'&&a[0]<='Z')||a[0]=='_'){ 1

C语言中变量名及函数名的命名规则与驼峰命名法

一.C语言变量名的命名规则:(可以字母,数字,下划线混合使用) 1. 只能以字母或下划线开始:2. 不能以数字开始:3. 一般小写:4. 关键字不允许用(eg:int float=2//error  float 为保留字不允许用): 二.函数名的命名规则 1.见名知意:2.自定义函数函数名首字母大写(库函数里的函数名都是以小写字母定义,为了区分库函数和自定义函数,避免冲突). 三.宏定义里面的变量 全大写 eg:#define SIZE 100(后面函数所有出现的SIZE全用100代替,它在所有

go语言变量

变量可以通过变量名访问 Go 语言变量名由字母.数字.下划线组成,其中首个字符不能为数字 声明变量的一般形式是使用 var 关键字: var identifier type 变量声明 1. 指定变量类型,如果没有初始化,则变量默认为零值. var v_name v_type v_name=name 零值就是变量没有做初始化时系统默认设置的值. 数值类型: 0 布尔类型为:false 字符串为 ""(空字符串) 2.根据值自行判定变量类型 var v_name=name 3. 多变量声明

插入数据时有特殊字符&且后面有字符被误认为变量名(insert时提示:输入值于***)

当出现如下报错时请检查你的SQL,肯定是值里面有特殊字符&.如果是没有用的直接删除就可以了,如果有用那么就需要处理一下了(默认插入值中带&符号,且后面有字符串,就会被误认为变量名).处理方法(意思是要把&用单引号单独引起来,然后用拼接的方式来处理这一列) 将 & 替换为 '||'&'||' 在plsql developer上回出现如下图提示 在sqlplus就是如下提示 SQL> insert into va values('T&K/泰恩康'); 输入