2017-10-24 11 views
2

は、機能的に、このようなものであることをCの#ifディレクティブ書くことができます。どのように私は私が欲しいもの、現在の日付に基づいて枝

#if TODAY<OCTOBER_31_2017 
#define OK 0 
#elif TODAY==OCTOBER_31_2017  
#define OK 1 
#else  
#define OK 2 
#endif 

だから私は、関連するコンパイル時の値を持つように「OK」したいが、今日の日付に応じて

これを行う方法はありますか?

答えて

1

あなたが行うことができます-DオプションおよびPOSIXシェル/環境、それを起動し、受け入れコンパイラと仮定すると:

cc -DOCTOBER_31_2017=$(date -d 'Oct 31 2017' +%s) \ 
    -DTODAY=$(date -d now +%s) \ 
    yourfile.c 

とあなたのプリプロセッサのコードは動作するはずです。

(あなたがCプリプロセッサの整数演算とそれらを比較できるようにする必要がありますUNIXタイムスタンプ(秒1970-01-01 00:00:00以来)、など date +%sプリント日付。)

+1

素晴らしいです。ありがとうございました。 – polytopia

関連する問題