الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف استخدم الامر pragma# ?

مغلق
بدأه hamada hassan ali في 25 سبتمبر 2005 · 5 رد · 2,411 مشاهدة · في المواضيع والدروس
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم الدروس رائعة

ولكن هذا هو الشى الوحيد الذى لا استطيع فهمه فى لغة السى

ممكن بس ولو توضحلى هذه الامر واتعامل معه ازى

pragma token-sequence opt#

ما المقصود بالكلمة token-sequence

------------------------------------------

وما فائدة هذه الاوامر

__LINE__

A decimal constant containing the current source line number.

__FILE__

A string literal containing the name of the file being compiled.

__DATE__

A string literal containing the date of compilation, in the form "Mmmm dd yyyy"

__TIME__

A string literal containing the time of compilation, in the form "hh:mm:ss"

__STDC__

The constant 1. It is intended that this identifier be defined to be 1 only in standard-conforming implementations

_____________________________

C Language && Windwos_API

_____________________________

#2

لا أعرف كثيرا عن الـ pragma و لكن ما اعرفه انها تستخدم لارسال رسالة خاصة الى كومبايلر معين.

مثلا الكومبايلر اللذي يأتي مع visual studio يقبل

#pragma once

في ملفات .h و هي بمثابة رسالة الى الكومبايلر تخبره فيها بأن يقوم بعمل include لهذا الملف مرة واحد فقط, و هي طريقة تغنيك عن الطريقة التقليدية

#ifndef FILENAME_H
#define FILENAME_H
...
...
...
#endif

لكن البراجمات هذه خاصة بالكومبايلر, و على الأغلب لن تعمل مع بقية الكومبايلرات.

هذا حد معلوماتي, انا شخصيا لم استخدم غير pragma once في حياتي.

راجع ان اردت http://msdn.microsoft.com/library/default...._directives.asp

بالنسبة لبقية الأشياء, __LINE__ مثلا .. هذه اذا كتبتها في الملف, سيتم استبدالها برقم هذا السطر في الملف. و __FILE__ يتم استبدالها باسم الملف.

جرب مثلا:

#include<iostream>
using namespace std;

int main()
{
    cout << "This is file: " << __FILE__ << endl;
    cout << "This is line: " << __LINE__ << endl;

    return 0;
}

عندما اشغلها عندي, تلطعلي:

This is file: e:\hasan\coding\test\test.cpp
This is line: 7
Press any key to continue

عملية الاستبدال تتم أثناء ترجمة الملف, و ليس اثناء تشغيل البرنامج.

نفس الشي لبقية الأِشياء, __DATE__ مثلا يتم استبدالها بتاريخ اليوم .. الخ.

#3

ال pragma هي من ضمن اوامر ال preprocessor , لن تجد عنها اي شرح بشكل مفصل في اي كتاب ولا حتى في جوجل . ابحث في اي كتاب للغه السي عن pragma رح تلقاه يقولك راجع ال documentation الموجود مع الكومبايلر اللي تستخدمه. بمعنى انه كل كومبايلر يستخدمه بشكل غير عن البقيه

#4

اخوي ال pragma هي اوامر وخيارات ترسل الى Compiler قبل لا يبدأ بعملية الترجمة

واذا أردت التفاصيل تجدها في ملفات MSDN فهي مشروحة بالتفصيل الممل

#5
b.m.s كتب:
اخوي ال pragma هي اوامر وخيارات ترسل الى Compiler قبل لا يبدأ بعملية الترجمة

واذا أردت التفاصيل تجدها في ملفات MSDN فهي مشروحة بالتفصيل الممل

ياريت لو تعطيني الرابط لاني قلبت الم اس دي ان وما لقيت شي واضح :rolleyes:

هذا الموضوع مغلق.

مواضيع مشابهة