Rumah >pembangunan bahagian belakang >C++ >Mengapa Saya Mendapat Ralat Pautan Pembolehubah Statik dalam Kod C Saya?

Mengapa Saya Mendapat Ralat Pautan Pembolehubah Statik dalam Kod C Saya?

Barbara Streisand
Barbara Streisandasal
2024-12-16 01:24:10308semak imbas

Why Am I Getting a Static Variable Linking Error in My C   Code?

Ralat Pemautan Pembolehubah Statik dalam C

Apabila menyusun kod C, terutamanya pada Mac, anda mungkin menghadapi "ralat pautan pembolehubah statik" serupa dengan yang dilaporkan dalam coretan kod yang disediakan. Ralat ini biasanya timbul apabila cuba merujuk pembolehubah statik yang tidak ditakrifkan dengan betul secara luaran (dalam fail *.cpp).

Akar Isu

Dalam kod yang disediakan, pembolehubah statik "theString" diisytiharkan dalam fail pengepala "Log.h" tetapi tidak pernah ditakrifkan. Pembolehubah statik memerlukan definisi luaran dalam fail *.cpp yang sepadan untuk menyimpan memori dan memulakannya.

Penyelesaian

Untuk menyelesaikan ralat pemautan, anda boleh menambah definisi daripada "theString" ke fail "Log.cpp", seperti yang ditunjukkan di bawah:

// Log.cpp

string Log::theString; // Define the static string here

Syor Tambahan

Selain mentakrifkan pembolehubah statik secara luaran, ia juga disyorkan untuk mengelak daripada menggunakan "menggunakan ruang nama std;" dalam fail pengepala. Amalan ini boleh membawa kepada pencemaran ruang nama, menjadikannya lebih sukar untuk nyahpepijat dan mengekalkan kod anda pada masa hadapan.

Atas ialah kandungan terperinci Mengapa Saya Mendapat Ralat Pautan Pembolehubah Statik dalam Kod C Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn