LabWindows/CVI Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Wolfgang

complete C99 support

well, the title says it all: extend the current partial support of C99 standard to full support

9 Comments
LuisG
NI Employee (retired)
Status changed to: Under Consideration
 
m-a
Member
Member

A decade after the C99 release, some of C99's more usefuly features (full standard C library, C99 types, and variadic macros support, to name a few features) are sorely missed -- and in the meanwhile, the C standard has been revised to C11 (which shouldn't hold back any efforts for full C99 support)... http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57853

MarcelK
Member

What's missing in respect to variadic macro support? That has been working for me since CVI 8.51.

Wolfgang
Trusted Enthusiast

Marcel,

 

there is no support for complex numbers, and bool still has to be defined by oneself (instead via <stdbool.h>)...  Also, support for unicode characters and double extended should be improved, e.g. see here, and the C11 features of multithreading (<threads.h>, <stdatomic.h>) and memory aligmnent (<stdalign.h>) might be interesting for some of us.

MarcelK
Member

Wolfgang, thanks, but I know this all (I expect partial C11 support by some vendors by 2030). "m-a" however said "variadic macro" support was missing, which I think is there.

Wolfgang
Trusted Enthusiast

Marcel, wow, you are really optimistic... 2030... I hope that at least some of the suggestions of this idea exchange will be implemented in CVI a little bit earlier than this Smiley Wink

MarcelK
Member

You know how they say, a pessimist is an optimist with experience Smiley Wink Seeing how spotty C99 support is with many C compilers even today I don't really have much hope for C11. But as hope dies last, I hope with you Smiley Happy

m-a
Member
Member

Indeed, variadic macro support appears to be working for me (not sure what I'd done wrong the first time I've tried).

 

Math.h support however is stuck with C89/C90, for instance, erf(), erfc(), round() and rint() are missing in CVI 9.0.1 and CVI 2010 according to http://zone.ni.com/reference/en-XX/help/370051T-01/cvi/libref/cviansi_c_libfunctiontree/ -- but these are only examples.

 

I'd certainly appreciate if the next CVI release offered the union of C99 and C11 library support. It's a pity that even the mainstream C99 library support isn't there, after more than a decade.

Wolfgang
Trusted Enthusiast

Now with CVI based on clang and clang supporting C99 including complex numbers it would be very nice if CVI itself also would support complex numbers:

 

- with the appropriate functions such as clog, csqrt,...

- with an adapted Advanced Analysis Library

- with the variable view displaying real and imaginary part

- with the data tooltips displaying real and imaginary part