编程-写一个宏定义#define 求高手作答。

问题描述

写一个宏定义#define 求高手作答。
今天突发奇想,object C里面 @""hello"" 就代表了 hello 的字符串。

然后C++里面 ""hello"" 即代表 hello 字符串。

能否写个define 类似于 @""__str__"" = ""__str__"" 的功能。

类似 #define @""__str__"" ""__str__"" 这样在写@“hello"" 的时候就被宏替换成了""hello""了。

但这样编译是不会通过的,请问能写出这样的宏来么。

解决方案

不可以的,因为字符'@'不满足宏的定义,即宏变量名不能够包含'@'标识符。
可以采用如下形式:
#define S(x) (x)
当使用S(""abc"") 指的字符串 abc

解决方案二:
做不到, 宏的名称必须 是标识符。

时间: 2024-12-04 00:52:55

编程-写一个宏定义#define 求高手作答。的相关文章

编程-Yahoo UI(引用)问题,求高手指教!

问题描述 Yahoo UI(引用)问题,求高手指教! http://img.my.csdn.net/uploads/201309/02/1378129656_3660.jpg <!DOCTYPE html> new document <!--引入一个yui3的种子文件--> .hello{ background-color:red } <script type="text/javascript" src="http://yui.yahooapis

Verilog HDL宏定义define

HDL宏定义define 宏定义 `define   用一个指定的标识符(即名字)来代表一个字符串,它的一般形式为:   `define 标识符(宏名) 字符串(宏内容)   如:`define signal string   它的作用是指定用标识符signal来代替string这个字符串,在编译预处理时,把程序中在该命令以后所有的signal都替换成string.这种方法使用户能以一个简单的名字代替一个长的字符串,也可以用一个有含义的名字来代替没有含义的数字和符号,因此把这个标识符(名字)称为

firefox-关于PHP的一个小问题,求高手解答

问题描述 关于PHP的一个小问题,求高手解答 我刚开始学习PHP,当我敲完代码后,使用火狐浏览器打开localhost时就会下载.part文件,随后才会另开一个网页,显示应该出现的信息.但是我用360安全浏览器却 不会出现这个问题,直接就会出现应该出现的页面.昨天也出现了这个问题,我把AppServ卸载了重装,就没有这个问题.但是今天我启动后又出现了这个问题.请问这是怎么回事 解决方案 火狐浏览器设置了什么? 解决方案二: 什么都没有设置啊 解决方案三: www目录下面有文件名为index的文件

我想在linux c里面写一个post请求,求大神

问题描述 我想在linux c里面写一个post请求,求大神 需求是,给短信服务器发送一个post,然后会收到短信,求大神帮我实现一下...curl或者socket都可以... 解决方案 用socket吧,大致为: 1.域名解析,将要访问的域名解析成IP地址. 2.使用TCP连接之. 3.发送HTTP POST头部和数据. 4.等待服务器返回. 5.解析length字段,获取应答包长度. 6.将返回的数据读取完.

C语言中的内联函数(inline)与宏定义(#define)详细解析_C 语言

先简明扼要,说下关键:1.内联函数在可读性方面与函数是相同的,而在编译时是将函数直接嵌入调用程序的主体,省去了调用/返回指令,这样在运行时速度更快. 2.内联函数可以调试,而宏定义是不可以调试的.内联函数与宏本质上是两个不同的概念如果程序编写者对于既要求快速,又要求可读的情况下,则应该将函数冠以inline.下面详细介绍一下探讨一下内联函数与宏定义. 一.内联函数是什么?内联函数是代码被插入到调用者代码处的函数.如同 #define 宏(但并不等同,原因见下文),内联函数通过避免被调用的开销来提

table新增的一行如何添加一个表单,求高手指点

问题描述 vartable=document.getElementById('myTable');varnewRow=table.insertRow(table.rows.length);newRow.insertCell(0).innerHTML='<formaction="addContent.action">'+'<inputtype="text"name="name"/>';newRow.insertCell(1)

关于C语言宏定义#define的心得

http://www.cnblogs.com/zhidian314/archive/2013/01/10/2855340.html

关于struts2和jquery 做一个启动错误,求高手指点

问题描述 严重:DispatcherinitializationfailedUnabletoloadconfiguration.-bean-file:/C:/Program%20Files/Apache%20Software%20Foundation/Tomcat%206.0/webapps/Struts3.4/WEB-INF/classes/struts.xml:13:63atcom.opensymphony.xwork2.config.ConfigurationManager.getConf

thread 方面的问题-线程的一个练习题,我已经按照题目要求实现了,但总感觉别扭,求高手修改

问题描述 线程的一个练习题,我已经按照题目要求实现了,但总感觉别扭,求高手修改 题目如下: 编写10个线程,第一个线程从1加到10,第二个线程从11加到20,....第10个线程从91加到100,最后再把10个线程结果相加. 但是,感觉自己写的太复杂,求高手指点优化. 解决方案 times++ 必须同步,要不然有线程安全问题. 而且你每个线程后都加join 那和一个线程执行有什么区别吗? 解决方案二: 你这样把a()方法锁住的话,那和一个线程直接执行1直接加到100又有什么区别呢? 解决方案三: