Я считаю, что самый надежный способ - использовать для этого специальные инструменты вместо использования grep
, ack
или чего-либо подобного. Всегда возможно, что определения распределены по нескольким строкам самым невообразимым образом. Вышеупомянутые инструменты легко вернут запрошенную информацию для таких функций, как:
int f(int a) { return 2; }
int g(a,b,c,d) int a,b,c,d; { return 2; }
но они не смогут дать полное значение, когда ваш источник немного более запутанный:
int f ( // declares a function
// this function is going to be awesome
int a // first variable
) { return 2; }
Вы, вероятно, должны использовать ctags
.