2010-09-11 115 views
2

我想用C語言編寫一個函數,但是可以從C++中調用,它需要一個受限制的指針。這僅在c99中可用,所以g ++不喜歡它,即使在extern "C"塊中。我怎樣才能解決這個限制?在C++的`extern「C」塊中使用c99

+3

'extern「C」並不意味着包含的代碼是C,這意味着在那裏聲明的任何函數或項都將使用C鏈接。 – 2010-09-11 01:09:44

+0

只是在開玩笑:嘗試'extern「C99」' – pmg 2010-09-11 12:08:45

+0

類似的問題在這裏:struct XY a = {.x = 1,.y = 2};'不會在extern「C」塊內編譯:_error:expected primary- '。'token_之前的表達,令人沮喪!相反,過時的形式'struct XY a = {x:1,y:2};'工作。哎喲! – gatopeich 2011-04-15 16:42:42

回答

1
#ifdef __cplusplus 
# ifdef __GNUC__ 
#  define restrict __restrict__ // G++ has restrict 
# else 
#  define restrict // C++ in general doesn't 
# endif 
#endif