c++-C语言关于#用法的错误

问题描述

C语言关于#用法的错误

#include
#define NAME ABC
#define AGE 21
void main()
{
fprintf( "我是" #NAME ",年龄"#AGE"n");
getchar();
}

我是想用# 来实现 输出 我是ABC,年龄21 这样的结果.
这么做的初衷是尝试各种方式运用define功能,是自己理解
但是参考了这篇blog(http://blog.csdn.net/acs713/article/details/6891837)
之后,自己尝试了如上代码,但是Visual 2013 却提示如下信息:

我想知道怎么样才能在可能保证原目的的情况下,正确编译?

解决方案

#include
#define NAME ABC
#define AGE 21
#define S1(x) #x
#define S2(x) S1(x)

int main()
{
printf("我是" S2(NAME) ",年龄" S2(AGE) "n");
getchar();
return 0;
}

时间: 2024-10-03 18:43:16

c++-C语言关于#用法的错误的相关文章

GO语言Defer用法实例分析_Golang

本文实例讲述了GO语言Defer用法.分享给大家供大家参考.具体分析如下: defer:调用一个被 defer 的函数时在函数刚要返回之前延迟执行,当函数无论怎样返回,某资源必须释放时,可用这种与众不同.但有效的处理方式.传统的例子包括解锁互斥或关闭文件. 这样延迟一个函数有双重优势:一是你永远不会忘记关闭文件,此错误在你事后编辑函数添加一个返回路径时常常发生.二是关闭和打开靠在一起,比放在函数尾要清晰很多. 复制代码 代码如下: /**  * Created with IntelliJ IDE

if,while各种语言的用法区别

if,while各种语言的用法区别 if,while等分支循环结构会继承外部作用域,即外部变量对分支循环结构内部可见. 但是C语言不支持if,while等分支循环结构内部作用域对外可见,而PHP则不然. 在PHP中,if,while等分支循环结构中声明的局部变量,在分支循环结构后面仍然有效. 比如,函数中声明的变量在函数外面是不可见的 C语言: #include<stdio.h> int foo() {     int bar;     bar  = 3; } int main() {    

用户体验:Login这个词用法是错误的

优秀的网站交互体验对于细节的处理是很到位的,比如我们在一些网站中经常见到的一些文字,随着时间的改变,这些文字也发生了很大的变化,这就是网站交互体验的改进. Login这个词用法是错误的.Login不是一个动作,这就好象"鞋"不是一个动作一样.他是一个名词,意思是the Login Interface(登录的界面). 并且还提出,正确用法应该是Sign in,仔细想想的确应该如此.在早期网站登录看到最多的就是Login和Register,偶尔还见有中文网站的图形修饰上有Login和Reg

c-VS2013C语言代码无语法错误后调试窗口无显示结果的原因

问题描述 VS2013C语言代码无语法错误后调试窗口无显示结果的原因 include include int main() { int a[2],sum; a[1] = 0; a[0] = 35; sum = a[0] + a[1]; printf("%c", sum); return 0; } 解决方案 %c -> %d 在最后加上 getch() getchar() system("pause") 三者之一 解决方案二: 调试的时候,你设置断点了吗,是不是

Go语言接口用法实例_Golang

本文实例讲述了Go语言接口用法.分享给大家供大家参考.具体分析如下: 接口类型是由一组方法定义的集合. 接口类型的值可以存放实现这些方法的任何值. 复制代码 代码如下: package main import (     "fmt"     "math" ) type Abser interface {     Abs() float64 } func main() {     var a Abser     f := MyFloat(-math.Sqrt2)   

Go语言map用法实例分析_Golang

本文实例讲述了Go语言map用法.分享给大家供大家参考.具体分析如下: map 映射键到值: map 在使用之前必须用 make 来创建(不是 new):一个值为 nil 的 map 是空的,并且不能赋值. 复制代码 代码如下: package main import "fmt" type Vertex struct {     Lat, Long float64 } var m map[string]Vertex func main() {     m = make(map[stri

go语言base64用法实例_Golang

本文实例讲述了go语言base64用法.分享给大家供大家参考.具体如下: 这里展示golang base64 的一个小例子,代码如下: 复制代码 代码如下: package main import (     "fmt"     "encoding/base64" )             func main() {     b64 := base64.NewEncoding("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijkl

代码-麻烦各位前辈看一下我这个C语言程序,找不出错误。

问题描述 麻烦各位前辈看一下我这个C语言程序,找不出错误. 我要对一个数组的数字进行排序,代码是这样的: //声明:该程序中输入的数据不能重复! #include int imin(const int va[], int n) // find the min of va[] { int i, min; min = va[0]; for (i = 0; i < n; i++) { if (min > va[i]) min = va[i]; } return min; } int imax(con

xcode-[c语言]无语法错误,但是结果不对,大一水平,求帮助~~!

问题描述 [c语言]无语法错误,但是结果不对,大一水平,求帮助--! 编译环境 xcode #include int main(int argc, const char * argv[]) { int k,i,j,a[4],m; printf("请输入4个不同的数字n"); for (i=0;i<4;i++) scanf("%d",&a[i]); for(i=0;i<4;i++) { for(j=0;j<4-i;j++) if(a[j]&g