yerine önişlemci sadece kopya tüm #include
d dosyaları, bunu çalıştırmak ve ön işlenen çıktıda bakabilirsiniz Çünkü
dosya sınırlarını gösteren yerde gösterim bırakır
SO2.h
:
#ifndef SO2_H
#define SO2_H
#include "SO1.h"
#endif
SO.cpp
:
#include "SO2.h"
int main(){}
Artık Ubuntu'dayken, gcc kullandığınızı varsayalım (veya clang, ama aynı seçeneği kabul eder).
# 1 "SO.cpp"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "SO.cpp"
# 1 "SO2.h" 1
# 1 "SO1.h" 1
struct Foo {};
# 4 "SO2.h" 2
# 2 "SO.cpp" 2
int main(){}
Hemen struct Foo
Yukarıdaki dosya etiket, söz konusu struct
tanımlanır nerede olduğu SO1.h
olduğunu görebilirsiniz: Eğer -E
bayrağı geçerseniz, sadece ön işlemci çalıştırır, daha sonra çıktıyı döker.
Bu, C ve C++ için eşit derecede iyi çalışır (örneğimde C++ kullanmış olsam da). Bununla birlikte, normalde bir soru için sadece tek bir dil seçmelisiniz.
Eğer struct
Mevcut projede yerdedir için arama (yani bir yerde geçerli dizinde), gerçekten böyle grep
gibi temel komut satırı araçlarını kullanabilirsiniz biliyorsanız. Örneğin, dosya ve eşleşen kaynak kod dosyalarının satırı hakkında bilgi verecektir. Düzenli ~/bin/srcgrep
azından ben koymak biraz komut dosyası kullan:
#!/bin/bash
RE="$1"
shift 1
find [email protected] \(-name "*.h" -o -name "*.hpp" -o -name "*.cpp" -o -name "*.c" \) -exec grep263 -EHn --colour=always "$RE" {} \;
Sonra
srcgrep "\<struct Foo\>" dir1 dir2
tüm kaynak kodu yerde dir1
ve dir2
altında (alt dizinleri dahil) dosyaları arayacaktır.
Daha gelişmiş bir araç ack!
'dur.
'grep -rnw --color.-e "struct_name" ' – LPs
' 'Eclipse' gibi bir' IDE' kullanabilirsiniz. – LPs
Kod sınıfınızda bir sınıf veya işlev adı için metin araması yapmayı gerçekten gerçekten istiyor musunuz? Bu gerçekten 4 upvotes aldın mı? Barmy. –