宏问题 [英] macros question

查看:58
本文介绍了宏问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

所以,我们有内置的__FILE__和__LINE__


我们怎么能定义

__FILELINE__宏,所以它就像是,例如, ; file.c:11"


我已经尝试了

#define __FILELINE__ __FILE__ ##":" ## __LINE__



#define __FILELINE__ __FILE__ ##":" ## #__ LINE__


和一堆不同的组合,但没有一个适合我:(

解决方案

开始跟随Andrew Arro:

我们怎么能定义
__FILELINE__宏,所以它就像是一样,例如,file.c:11


nl -ba fc

1 #include< stdio.h>

2

3 #define QUOTE_STR(s)#s

4 #define QUOTE_NUM(n)QUOTE_STR(n)

5 #define __FILELINE__ __FILE__":" QUOTE_NUM(__ LINE __)

6

7 int main()

8 {

9 put(__ FILELINE __);

10返回0;

11}


> gcc -Wall fc&& ./a.out

fc:9

我已经尝试了
#define __FILELINE__ __FILE__ ##":## _ _ _ _ _ _ _ _ _ _ _ _ _&##################################### __FILELINE__ __FILE__ ##":" ## #__ LINE __


废话。


-
$ b $bFürGoogle,Tux和GPL!

so, we have built-in __FILE__ and __LINE__

how could we define
__FILELINE__ macros so it would be smth like, for example, "file.c:11"

i''ve tried
#define __FILELINE__ __FILE__ ## ":" ## __LINE__
and
#define __FILELINE__ __FILE__ ## ":" ## #__LINE__

and a bunch of different combinations but none work for me :(

解决方案

begin followup to Andrew Arro:

how could we define
__FILELINE__ macros so it would be smth like, for example, "file.c:11"


nl -ba f.c
1 #include <stdio.h>
2
3 #define QUOTE_STR(s) #s
4 #define QUOTE_NUM(n) QUOTE_STR(n)
5 #define __FILELINE__ __FILE__ ":" QUOTE_NUM(__LINE__)
6
7 int main()
8 {
9 puts(__FILELINE__);
10 return 0;
11 }


> gcc -Wall f.c && ./a.out
f.c:9
i''ve tried
#define __FILELINE__ __FILE__ ## ":" ## __LINE__
and
#define __FILELINE__ __FILE__ ## ":" ## #__LINE__



Nonsense.

--
Für Google, Tux und GPL!


这篇关于宏问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆