constBiç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 argvkarakter verilerini yapamazsınız const. Bu, standart mainişlev imzalarından biri olmadığı ve bir mainişlev olarak tanınması gerekmeyeceği anlamına gelir . Yani, iyi bir fikir değil.
mainOyuncak 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 GetCommandLineAPI işlevi açısından daha taşınabilir argüman erişim olanağı uygulayabilirsiniz .
Özetle, hiçbir şey eklemenizi constengellemez argc, ancak en kullanışlı constolanı argvsize standart olmayan bir mainiş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.
argcolarakconst.