2014-02-19 15 views
0

Я смотрел на исходный код Берклеевской лаборатории контрольной точки/перезапуска и нашел этот предобработать макроопределения:Что означает ## в C?

#define io_wrap(_op,_ctx,_file,_buf,_count) \ 
     cr_##_op((_ctx)->req->errbuf,(_file),(_buf),(_count)) 

Любая идея, что ад значит эта вещь?

Я нашел это в blcr-0.8.5/vmadump4/vmadump.h

Спасибо!

+1

_ «что, черт возьми, это значит, что» _ лол: D –

+0

Это означает конкатенацию 'cr_' со значением из '_op()' без добавления пробелов, которые будут добавлены, если они были разделены символом пробела. –

ответ

2

## предназначен для конкатенации в препроцессоре С.

Этот результат _op((_ctx)->req->errbuf,(_file),(_buf),(_count)) сцепляется с cr_