Way to print a code with substituted macro..?


 
Thread Tools Search this Thread
Top Forums Programming Way to print a code with substituted macro..?
# 1  
Old 06-21-2010
Way to print a code with substituted macro..?

Is there any way to produce a code with all use dmacro to be substituted up to 'ready for compilation' condition?
Some macro are build up and it is hard to replace all them up to final code by hand.
I need to see the final line after all macro been applied by preprocessor.

How that could be done?

Thanks!
# 2  
Old 06-21-2010
Pass the `-E' flag to gcc, which tells gcc to stop after the preprocessing stage. You should probably use a .i file extension (e.g. `gcc program.c -E -o program.i') since that's the standard for C source code that shouldn't be preprocessed.

Remember that if you #include anything, especially from the standard library, you'll get that in this file, so all your code will be right at the end.
This User Gave Thanks to JohnGraham For This Post:
# 3  
Old 06-22-2010
Thank you! Exactly what I need!
Only one point: I am using the 'acc' and that compiler by the -E option does not produce the '-o "file"', but printing out on standart output; so, the result need to be redirected into desided file. (that's for anyone else to use this thread...)
# 4  
Old 06-22-2010
You need the "-P" switch which stops acc after the preprocessing stage and produces a file with the same prefix as the source filename but with a ".i" extension.
This User Gave Thanks to shamrock For This Post:
# 5  
Old 06-22-2010
Quote:
Originally Posted by shamrock
.. the "-P" switch ...
Thank you, shamrock!
It is good to know!
# 6  
Old 06-22-2010
Quote:
Originally Posted by alex_5161
Thank you! Exactly what I need!
Only one point: I am using the 'acc' and that compiler by the -E option does not produce the '-o "file"', but printing out on standart output; so, the result need to be redirected into desided file. (that's for anyone else to use this thread...)

You'd also be interested in exploring cpp ; Its the C pre Processor , available on most UNIX systems. However, I have used it mostly on my Linux ststems only Smilie

Just run the command:
Code:
 $ cpp Your_CprogFile.c > Your_preProcessed_CprogFile_output.c

I'm loving it!!!!Smilie
This User Gave Thanks to Praveen_218 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Python: Suppress lines not substituted

Hi all, I started playing around with Python (2.6.6) trying to parse a file. No matter what I tried so far I am not able to print only the lines/group/backreference that have been affected by the substitution. Instead I get also the other lines too File to parse: some more text ... (2 Replies)
Discussion started by: zaxxon
2 Replies

2. Programming

Explanation of a macro

Can some body explain this part in a header file for me? #include <limits.h> #define BIGNUM unsigned long long typedef BIGNUM (*hash_t) (char *str); ......I have hard time for the second part: typedef BIGNUM (*hash_t) (char *str); First, I could not find the definition of hash_t, which... (1 Reply)
Discussion started by: yifangt
1 Replies

3. UNIX for Dummies Questions & Answers

macro

Can I create a macro in UNIX? If so where do I find out how? (1 Reply)
Discussion started by: JD_Sal
1 Replies

4. Shell Programming and Scripting

Unix macro help

Hi, I just opened one old RH box and found number of "macros" in there, that how they called in how-to doc, let say you type <rx> and this does a lot of stuff. I can't figure out how it work, how I can edit/display these macros? Can anybody point to the right directions? I have some academic... (3 Replies)
Discussion started by: trento17
3 Replies

5. Programming

Linux Kernel code "current" macro

I was going through the Linux code, i stuck with few inline assembly language code, I have tried online but in vain. Any help is much appreciated. Thanks. /* how to get the thread information struct from C */ static inline struct thread_info *current_thread_info(void) { struct... (3 Replies)
Discussion started by: kumaran_5555
3 Replies

6. Shell Programming and Scripting

substituted variable assignment

I try to run this script, however, it gives an exception in line 3. How do I do an assignment to a substituted variable? #!/bin/bash name=fruit ext_$(eval echo ${name})=apple tmp=ext_$(eval echo ${name}) if ]; then echo "apple" elif ]; then echo "orange" fi echo ${!tmp} Error... (2 Replies)
Discussion started by: angelokh
2 Replies

7. Programming

Make-question - redefine a macro, using another macro..?

I think there is no problem to use any macro in a new macro definishion, but I have a problem with that. I can not understand why? I have a *.mak file that inludes file with many definitions and rules. ############################################## include dstndflt.mak ... One of the... (2 Replies)
Discussion started by: alex_5161
2 Replies

8. UNIX for Dummies Questions & Answers

Only one particular occurence needs to be substituted !!!

In a file, field separetor in line is irregular number of spaces, so I canot use field in sub function to get my charecter replaced with empty space. I would like to substitute only one perticular charecter with space at perticular posiotn, so I canot use perticular character as that may occur... (6 Replies)
Discussion started by: vaka
6 Replies

9. Programming

Regarding #ident macro

Hi, In my application I have some number c files. In each of the file the following line will be the first statement. #ident "@(#) set.c 14.1.2.2 05/15/01 17:06:32" I would like to know what is the use of the above statement. Thanks Sarwan (1 Reply)
Discussion started by: sarwan
1 Replies

10. Programming

macro

Can i define a macro for a function of 10 LOC. (9 Replies)
Discussion started by: bankpro
9 Replies
Login or Register to Ask a Question