From: Junio C Hamano Date: Sun, 01 Mar 2009 09:10:16 GMT Subject: Re: coding style: #ifdef blocks and real C blocks Message-ID: <7vbpsl8v7r.fsf@gitster.siamese.dyndns.org> In-Reply-To: Tay Ray Chuan writes: > #ifdef USE_CURL_MULTI > slot = get_active_multi_slot(); > #else > slot = get_active_slot(); > #endif > slot->callback_func = process_response; > slot->callback_data = request; > request->slot = slot; How about doing something like this: #ifdef USE_CURL_MULTI #define active_slot_get get_active_multi_slot #else #define active_slot_get get_active_slot #endif so that the code itself would not have to have any #ifdef? slot = active_slot_get() slot->callback_func = process_response; slot->callback_data = request; request->slot = slot; > #ifdef USE_CURL_MULTI > if (!persistent_connection) > slot = get_active_multi_slot(); > else > slot = get_active_slot(); > #else > slot = get_active_slot(); > #endif Similarly, with something like this: #ifdef USE_CURL_MULTI slot active_persistent_slot() { return persistent_connection ? get_active_slot() : get_active_multi_slot(); } #else slot active_persistent_slot() { return get_active_slot(); } #endif the call site can be #ifdef free, no?