Using c++ style comments in mex files.

I'm testing simple mex functions today and I would like to add some comments. However, I noticed:
  1. If my comments are surrounded by "/* \*/", namely, /*comments*/, the compilation of mex file works fine.
  2. But if my comments are commented in the way using "//", namely, //comments, the compilation fails.
Can anybody help to explain why it is so? Does that mean, I'm not able to write comments in the way of "//comments" in Matlab mex files?

 Respuesta aceptada

Jan
Jan el 26 de En. de 2011

3 votos

While the LCC compiler shipped with Matlab, modern LCC versions, Borland BCC, OpenWatcom, MSVC und Intel compilers understand the C99 comment style, the GCC compiler needs to enable them explicitely on Linux:
mex('CFLAGS="\$CFLAGS -std=c99"', 'File.c')

Más respuestas (1)

Walter Roberson
Walter Roberson el 22 de En. de 2011

0 votos

Were you using C or C++ ? C++ has always accepted // comments, but the original 1989 C standard did not accept them. If you are using the default LCC compiler then possibly it does not accept them. You may have to specifically configure your compiler to use the C99 standard if you are using C.

5 comentarios

Ashish Uthama
Ashish Uthama el 26 de En. de 2011
Confirming: LCC does not accept C++ comments.
Jan
Jan el 29 de En. de 2011
I disagree. At least on LCC shipped with Matlab 5.3, 6.1, 6.5, and 2009a (LCC2.4) and the version 3.8 from the net do accpet C++ comments. I've tested all Mex functions with LCC before I posted them in the FEX - and I ever use the C99 comment style // .
James Tursa
James Tursa el 29 de En. de 2011
Which is why I have switched to using the /* */ style in my FEX submissions, even though I prefer the // style.
Jan
Jan el 29 de En. de 2011
@James: As far as I know, only GCC without -std=c99 fails to interprete this 12 year old standard. And I do not understand, why MathWorks does not include this flag as standard in the mexopts file.
Do you know other compiler, which insiste on c89 style?
James Tursa
James Tursa el 29 de En. de 2011
No. I haven't researched this. I just got tired of all the problems that gcc users had with compiling my FEX submissions. Actually, I still write with the // style, I just use a simple conversion program after the fact to produce the files I submit.

Iniciar sesión para comentar.

Categorías

Más información sobre Write C Functions Callable from MATLAB (MEX Files) en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 22 de En. de 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by