В чем разница между #include <filename> и #include "filename" в C++?
مرحبًا أيها الزملاء! أنا مطور C++ مبتدئ وقد واجهت نقطة غير واضحة. في الكتب وأمثلة الكود، أرى طريقتين لتضمين ملفات الرأس:
1. `#include ` — مع أقواس زاوية.
2. `#include "myheader.h"` — مع علامات اقتباس.
للوهلة الأولى، لا يوجد فرق — كلا الخيارين يضمّنان الملف. لكن لاحظت أن المكتبات القياسية (iostream، vector، string) تُكتب دائمًا بأقواس زاوية، بينما ملفاتي الخاصة (مثل "myclass.h") تُكتب بعلامات اقتباس.
جربت كتابة `#include "iostream"` — تم تجميع الكود وعمل. بينما `#include ` أعطى خطأ "file not found". لماذا يحدث هذا؟ هل هي مجرد اتفاقية أسلوب أم هناك فرق تقني حقيقي؟
يهمني بشكل خاص:
- كيف يبحث المترجم عن الملفات في كل حالة؟
- هل يؤثر الاختيار على الأداء؟
- هل هناك حالات يجب فيها استخدام خيار معين دون الآخر؟
أقدم مثالًا على كودي:
```cpp
// main.cpp
#include // يعمل