Bu kod satırı ne işe yarıyor?

extern "C"

{

  __attribute__((visibility("default"))) __attribute__((used)) int factorial(int a)

  {

    if (a > 1)

    {

      return a * factorial(a - 1);

    }

    else

    {

      return 1;

    }

  }

  __attribute__((visibility("default"))) __attribute__((used)) int sum(int a, int b)

  {

    return a + b;

  }

}

Arkadaşlar merhaba sorum "attribute((visibility(“default”))) attribute((used)) " bu kodun ne işe yaradığı. Ne işe yarıyor bu burada tam olarak ? Biraz araştırdım ama pek bir şey bulamadım.

Soru sorarken sikca dusulen hatalar #1

Google’a yazinca ilk, DuckDuckGo’ya yazinca ikinci siradaki sonuc (SO) cevapliyor ve resmi dokumentasyona link veriyor.

3 Beğeni

Buradaki konudan bahsediyorsunuz sanırım. Tam anlamış mıyım teyit anlamında üstünden geçelim. İngilizcem çok iyi olmadığı için gerçekten kavrayamıyorum bazen ne anlamda kullanıldığını. Çeviri de anlamsız şeyler sunuyor bazen. Bu konudaki örnekleri de o yüzden anlamadım farklı bir kaynaktan şöyle bir şey buldum ;

“The attribute directive is used to decorate a code declaration in C, C++ and Objective-C programming languages . This gives the declared code additional attributes that would help the compiler incorporate optimizations or elicit useful warnings to the consumer of that code.”

Yani buradan anladığım derleyiciye optimazasyon için verilen özellikleri dahil ediyor veya kodu yazan kişiye yararlı uyarılar vermek için ek öznitelikler veriyormuş. Bu kod tercihe kalmış bir şey sanırım belirtsem de olur belirtmesem de. Yani bu yazdıklarım doğruysa eğer yine de yazdığım kod bloğunda ne işe yaradığını hala anlamadım :smiley: Neyse sanırım pek de önemli bir şey değil gibi duruyor. Teşekkürler cevap için

Alinti paragraf genel olarak attribute’un ne ise yaradigini anlatiyor. Degisik seyler icin kullanildigi icin faydasiz olacak derecede genis. (Pragma’lari veya compiler komut satiri argumanlarini anlatmaya calissak olacagi gibi.)

Tercumenin sikintisi void, linkage gibi teknik terimleri de cevirmesi. Orijinaliyle yanyana okumanizi tavsiye ediyorum.

2 Beğeni