Untuk mengelakkan ralat definisi semula yang disebabkan oleh memasukkan fail pengepala yang sama beberapa kali, anda harus melaksanakan sertakan pengawal dalam kod anda. Ini akan memastikan bahawa fail pengepala hanya disertakan sekali, walaupun ia disertakan daripada berbilang fail.
Menggunakan #pragma sekali Arahan:
Anda menyatakan bahawa anda menggunakan #pragma sekali dan bukannya menyertakan pengawal, yang merupakan pendekatan yang sah. Arahan ini memberitahu pengkompil untuk memasukkan fail pengepala sekali sahaja, tidak kira berapa kali ia disertakan. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa arahan ini ialah sambungan khusus Microsoft dan mungkin tidak disokong oleh semua penyusun.
Sertakan Pelaksanaan Pengawal:
Jika anda lebih suka untuk menggunakan sertakan pengawal sebaliknya, berikut ialah cara anda boleh melaksanakannya dalam pengepala MyClass.h anda fail:
#ifndef MYCLASS_H #define MYCLASS_H // Include necessary header files here #include <winsock2.h> // Declare your MyClass class here #endif // MYCLASS_H
Dalam pendekatan ini, kami mentakrifkan makro bernama MYCLASS_H dan menggunakannya untuk membalut keseluruhan kandungan fail pengepala. Jika makro tidak ditakrifkan (iaitu, ia adalah kali pertama fail pengepala ditemui), kandungan dalam #ifndef dan #endif akan disertakan. Jika tidak, kandungan akan dilangkau, menghalang takrifan semula berbilang.
Menyelesaikan Ralat Takrifan Semula:
Ralat yang anda alami kemungkinan besar disebabkan oleh memasukkan
#define _WINSOCKAPI_ // Prevent windows.h from including winsock2.h #include <windows.h> // ... #include "MyClass.h" // Which includes <winsock2.h>
Ini akan menghalang
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Pelbagai Takrifan Semula Fail Pengepala, Terutamanya winsock2.h, dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!