Editing BoostC Inline Functions

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 24: Line 24:
 
all of a #define must be contained on one line, but a function typically requires several lines.  The lines can be simulated by the required ";" the end of statement marker, but you can still run out of line length.  You can combine different lines by using the line xxxx characer "\" at the end of a line.  This lets you change:
 
all of a #define must be contained on one line, but a function typically requires several lines.  The lines can be simulated by the required ";" the end of statement marker, but you can still run out of line length.  You can combine different lines by using the line xxxx characer "\" at the end of a line.  This lets you change:
  
     if ( a == 0 ) { x = 1; y = 2; }
+
      
  
  
 
to  
 
to  
  
    if ( a == 0 ) { \
+
 
        x = 1; \
 
        y = 2; \
 
    }
 
 
      
 
      
  
Line 40: Line 37:
  
 
== #define with Arguments -- Some Details ==
 
== #define with Arguments -- Some Details ==
 
 
Still to be written
 
  
 
== Inline C -- Some Details ==
 
== Inline C -- Some Details ==
Line 56: Line 50:
 
Cons:
 
Cons:
  
*You can not debug ( source code ) into the function. UPDATE: Actually this is not correct. Debug of inline functions is disabled by default but can be enabled using compiler command line argument -i
+
*You can not debug ( source code ) into the function.
 
 
Comment:
 
 
 
I tried to use an inline function in a .c file and call it from another .c file.  It was declared in the .h file.  This would not compile.  I had to move the entier inline function to the .h file.  This caused other reference problems. So if I did this right just adding the inline qualifier may not be enough in some cases. -- This should be checked more carefully.
 
  
 
== Inline Assmebler Code -- Some Details ==
 
== Inline Assmebler Code -- Some Details ==
Line 71: Line 61:
 
== Links ==
 
== Links ==
  
[http://publications.gbdirect.co.uk/c_book/chapter2/textual_program_structure.html 2.3. The Textual Structure of Programs]
 
 
[http://irc.essex.ac.uk/www.iota-six.co.uk/c/j1_the_c_preprocessor.asp The C Preprocessor]
 
 
[http://www.cs.cf.ac.uk/Dave/C/node14.html The C Preprocessor]
 
 
[http://publications.gbdirect.co.uk/c_book/chapter7/how_the_preprocessor_works.html 7.2. How the preprocessor works]
 
 
[http://en.wikipedia.org/wiki/C_preprocessor C preprocessor From Wikipedia, the free encyclopedia]
 
  
  
 
[[Category:BoostC]][[Category:PIC]]
 
[[Category:BoostC]][[Category:PIC]]

Please note that all contributions to OpenCircuits may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see OpenCircuits:Copyrights for details). Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)