const
Biçimsel bir argümandaki üst düzey , işlev türünün bir parçası değildir. İstediğiniz gibi ekleyebilir veya kaldırabilirsiniz: yalnızca işlev uygulamasındaki argümanla neler yapabileceğinizi etkiler.
Böylece, argc
özgürce bir const
.
Ancak , işlev imzasını değiştirmeden argv
karakter verilerini yapamazsınız const
. Bu, standart main
işlev imzalarından biri olmadığı ve bir main
işlev olarak tanınması gerekmeyeceği anlamına gelir . Yani, iyi bir fikir değil.
main
Oyuncak olmayan programlarda standart bağımsız değişkenlerin kullanılmamasının iyi bir nedeni , Windows'ta uluslararası karakterli dosya adları gibi gerçek program bağımsız değişkenlerini temsil edememesidir. Bunun nedeni, Windows'ta Windows ANSI olarak kodlanmış çok güçlü bir kuraldır. Windows'ta GetCommandLine
API işlevi açısından daha taşınabilir argüman erişim olanağı uygulayabilirsiniz .
Özetle, hiçbir şey eklemenizi const
engellemez argc
, ancak en kullanışlı const
olanı argv
size standart olmayan bir main
işlev verir, büyük olasılıkla bu şekilde tanınmaz. Ne mutlu ki (ironik bir şekilde) taşınabilir ciddi kod için standart argümanları kullanmamak için iyi nedenler var main
. Oldukça basit, pratikte sadece İngilizce alfabe harfleriyle yalnızca eski ASCII'yi destekliyorlar.
argc
olarakconst
.