我有一段代碼如下C代碼預處理器
Local_DATA[0] = * ((int32_T *) event_structure + 1);
Local_DATA[1] = * ((int32_T *) event_structure + 2);
Local_DATA[2] = * ((int32_T *) event_structure + 3);
Local_DATA[3] = * ((int32_T *) event_structure + 4);
我將不得不作出預處理器等
#ifdef ABC
Local_DATA[0] = * ((int32_T *) event_structure + 1);
Local_DATA[1] = * ((int32_T *) event_structure + 2);
Local_DATA[2] = * ((int32_T *) event_structure + 3);
Local_DATA[3] = * ((int32_T *) event_structure + 4);
#else
Local_DATA[0] = ntohl (* ((int32_T *) event_structure + 1));
Local_DATA[1] = ntohl (* ((int32_T *) event_structure + 2));
Local_DATA[2] = ntohl (* ((int32_T *) event_structure + 3));
Local_DATA[3] = ntohl (* ((int32_T *) event_structure + 4));
#endif
我有許多行代碼,其中我必須手動執行此。有什麼辦法可以像定義宏一樣?
確保數據總是*網絡字節順序可能會更容易,那麼您不需要預處理器條件。 –
你能告訴我們每個組的相似和不同部分是什麼?如果不知道哪些部分是恆定的,哪些部分是可變的,我們就不能顯示最佳宏。 – Barmar
ntohl是一個宏,int32_T是一個數據類型,event_structure和Local_Data是變量。 – Matt