私の質問はこれです。ヘッダ・ファイルにIは、関数宣言がある場合:宣言でのみポインタを制限するよう指定しますか?
extern void func(void* restrict, void* restrict);
を、次いで、ソース・ファイルに、私はそのように定義する:
void func(void*, void*) {}
これは問題ですか? restrict
修飾子は失われていますか?
P.S.これは、C89モードでソースファイルをコンパイルし、ヘッダーのプロトタイプを条件付きマクロを持つそれぞれのC89/C99バージョンに変更できるためです。
条件マクロがある場合、どちらの定義にも1つの定義を適用しようとしていますか?このようなシナリオに対処する「正しい」方法は、マクロガードによって分割された2つの宣言を提供するか、ガードによって異なる定義が与えられたマクロ識別子の下に問題のあるキーワードを隠すことです。 – Leushenko