|
|
|
новичок
      
участник
Last Login: 09.01.2010 18:54
Сообщ.: 1,
Visits: 2
|
|
Недавно из прочитанной статьи о директивах препроцессора define узнал, что ее (define) можно применять и в качестве функции:
#define LL (l) (l+l)
Но вот в различных программных кодах никогда не наблюдал данного применения define. С чем это связано?
|
|
|
|
|
Forum Guru
      
участник
Last Login: 16.05.2010 12:41
Сообщ.: 70,
Visits: 645
|
|
Это связано с тем, что define - это деректива препроцессора и заменить полноценную функцию не может. Кроме того, она потенциально опасна. Приведу пример: #define mult(a, b) a * b. Что будет, если в такую директиву передать, например 2+1 и 3 ? Ответ будет 5, а не 9, как ожидалось.
|
|
|
|