2013-10-22 18 views
10

ile biter? Bazı özel kaynak kodlarına bakıyorum: bir kitaplık kullanarak örnek programlar.Neden C dosyaları/* [] */

Kod, derleme sistemi kullanılarak C ve C++ ile yazılmıştır.

Her dosya biten bir [] dışarı yorumladı: kaynak dosyaları için /*[]*/ derleme ortamına #[]#. Bunun nedeni ne olabilir?

Kod, uzantıları kullanarak GCC ile ARM için derlenmiştir.

+0

Muhtemelen vi için. – Rohan

+3

Bunu bir kodlama stili olarak adlandırmayacağım ve bunun standart olmadığını tahmin ediyorum. C. # ile başlayan satırlar genellikle önişlemci yönergeleridir ve [] # 'standart bir değildir. '# [] # '' Nin her dosyanın gerçekten son satırı olduğundan emin misiniz? –

+1

Tahminimce makefile sistemi bu satırları bir yerlerde kullanıyor. Kod yeterince eski C kodu içeriyorsa, mutlaka // yorum sayılmazdı. Bu nedenle, tek bir kod olmayan bir satır eklemenin bir yolu olurdu ve ön derleyici bunu filtreleyecekti. Belki bağımlılık ağacı inşa etmek için mi? Benim önsezim makefile bakmak olurdu. –

cevap

6

Büyük olasılıkla bir çeşit otomatik genişleme için bir yer tutucudur. Genellikle, makrodef (veya kaynak kod denetim filtrelerinden biri) gibi bir şey, bazı ilgili metinleri içerecek şekilde bu öğeleri genişletirdi. Genellikle yalnızca yorum korumalı parantezler genişleyeceğinden, yorumlar derleme zamanında gerçek genişletilmiş öğelerden korunarak yerinde kalır. Bununla birlikte, şu anda incelemekte olduğunuz şey, muhtemelen dahili genişletmelerin tümünün çıkarıldığı dıştaki braketlerdir. Bu, bir kaynak kod kontrol sisteminden diğerine kod geçişi sırasında yapılmış olabilir. Böyle bir fikir son derece spekülatif olsa da, sadece bunları kaldırmak yerine, genişletme öğelerini taşımak için çaba harcadıkları görülmemektedir.

0

bir projede çalışmak için kullanılan, her C kaynak dosyası en sonunda bir yorum içeriyordu: Bunun nedeni

Warning : No new line at end of file 

yüzden bu vardı gcc uyarı oldu

/* End of file */ 

Yorum yaptıktan sonra yorum yazamadığınızdan emin olun :)

+2

Bu hiç mantıklı değil! Editörler izin verdiği sürece, kullanıcılar bu yorumun sonunda yeni satırı silebilir. – rodrigo

+0

Bu iyi bir fikir ve ben de bahsetmeyi düşündüm; Ancak, make dosyalarının neden aynı yorum tarzına sahip olduğunu açıklamıyor. Dosyaların derlenmemesini sağlayın, böylece bir derleyici uyarısı vermek için 'gcc 'yi alamazlar. –

+0

@rodrigo Elbette, ancak yorumu görüyorlar ve 'dosya bittikten sonra' yazmıyorlar. Gerçekten çalıştı. – Archie

İlgili konular