Логика: is (A &&! (B || C)) || (B || C) то же, что (A || B || C)?

Я столкнулся с некоторым кодом obj-c, и мне интересно, есть ли способ его упростить:

#if ( A && !(B || C)) || ( B || C )

это то же, что и?

#if ( A || B || C )

Если нет, есть ли другой способ сформулировать это, чтобы было легче читать?

(B || C)) || (B || C) то же, что (A || B || C)? Я столкнулся с некоторым кодом obj-c, и мне интересно, есть ли способ его упростить: #if (A &&! (B || C)) || (B || C) это то же самое, что? #if (A || B || C) Если нет, то есть ли другой ...

Я столкнулся с некоторым кодом obj-c, и мне интересно, есть ли способ его упростить:

#if ( A && !(B || C)) || ( B || C )

это то же самое, что и?

#if ( A || B || C )

Если нет, есть ли другой способ сформулировать это, чтобы было легче читать?

(B || C)) || (B || C) то же, что (A || B || C)? Я столкнулся с некоторым кодом obj-c, и мне интересно, есть ли способ его упростить: #if (A &&! (B || C)) || (B || C) это то же самое, что? #if (A || B || C) Если нет, то есть ли другой ...

Я столкнулся с некоторым кодом obj-c, и мне интересно, есть ли способ его упростить:

#if ( A && !(B || C)) || ( B || C )

это то же самое, что и?

#if ( A || B || C )

Если нет, есть ли другой способ сформулировать это, чтобы было легче читать?

[править] Я попробовал таблицу истинности, прежде чем задавать вопрос, но подумал, что что-то упустил, потому что сомневался, что Foundation.framework / Foundation.h будет использовать эту более сложную форму. Есть ли для этого веская причина?

Вот исходный код (из Foundation.h):

#if (TARGET_OS_MAC && !(TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)) || (TARGET_OS_EMBEDDED || TARGET_OS_IPHONE)
10
задан jpwco 21 January 2011 в 21:44
поделиться