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

المتغيرات الحرفية و المدى الذي يمكن ان تصل إليه !

بدأه khaled_prg في 2 أغسطس 2010 · 22 رد · 1,125 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

جميعنا نعلم أن المتغيرات التي من نوع char تأخذ -128 كقيمة دنيا و 127 كقيمة عظمى و هي تمثل حروف آسكي لأن كل حرف من هذه الحروف يقابله كود معين هو مايميزه عن بقية الحروف و الأرقام و الرموز.

حسب ما أعرف فإن ترميز الآسكي يبدأ من صفر و ينتهي بـ 255 مما يعني أنه يوجد 256 حرف في الجدول, ولكن كيف تكون المتغرات الحرفية تمثل جدول آسكي و مع ذلك تأخذ أعداد سالبة !

انظر الكود: (المترجم لم يعترض و قد ظهر لي رمز غريب جدا)

#include<stdio.h>
#include<stdlib.h>
int main()
{
   char ch=-65;
   printf("%c\n",ch);
   system("pause");
   return 0;
}

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

سؤال مستقل:

عندما نريد أن نُسند قيمة من النظام الثماني إلى متغير ما فإننا نكتب العدد 0 أمام القيمة هكذا:

short num=07361;//num=3825 in decimal

و إذا أردنا أن نُسند قيمة من النظام السداسي عشر إلى متغير ما فإننا نكتب 0x أمام القيمة هكذا:

long num=0xA22FBD6;//num=170064854 in decimal

و لكن ماذا لو أردنا إسناد قيمة من النظام الثنائي .. كيف نُسندها !؟

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

#2
اقتباس
و لكن ماذا لو أردنا إسناد قيمة من النظام الثنائي .. كيف نُسندها !؟
أعتقد لا نستطيع

بالنسبة للسؤال الأول:

فكر في أي رقم على أنه مجموعه من الأصفار و الوحايد...

#3

السلام عليكم

اقتباس

khaled_prg: و لكن ماذا لو أردنا إسناد قيمة من النظام الثنائي .. كيف نُسندها !؟

Khaled.Alshaya : لاتوجد طريقة مباشرة لعمل هذا في ++C و C

هويدي : أعتقد لا نستطيع

انظروا هذا الموضوع:أسئلة في المؤشرات

و بالتحديد المشاركة رقم 2 للأستاذ وجدي عصام و ما يهمني منها (الآن) هي هذه الفقرة:

اقتباس
ox هي وسيلة لتحديد التمثيل المستخدم ، مثلا لو افترضنا أنها لا توجد فما هو الرقم 11 ؟

هل هو 11 بالنظام السادس عشر أم بالثنائي أو بالعشري ؟

لذلك يتم كتابة :

11b لتحديد أنه ثنائي

0x11 لتحديد أنه سداسي عشر

11 لتحديد أنه عشري

ما تعليقكم !؟

اقتباس
فكر في أي رقم على أنه مجموعه من الأصفار و الوحايد...

و لكن كيف تكون المتغرات الحرفية تمثل جدول آسكي و مع ذلك تأخذ أعداد سالبة !؟

سلامي :)

#4
khaled_prg كتب:

السلام عليكم

جميعنا نعلم أن المتغيرات التي من نوع char تأخذ -128 كقيمة دنيا و 127 كقيمة عظمى و هي تمثل حروف آسكي لأن كل حرف من هذه الحروف يقابله كود معين هو مايميزه عن بقية الحروف و الأرقام و الرموز.

حسب ما أعرف فإن ترميز الآسكي يبدأ من صفر و ينتهي بـ 255 مما يعني أنه يوجد 256 حرف في الجدول, ولكن كيف تكون المتغرات الحرفية تمثل جدول آسكي و مع ذلك تأخذ أعداد سالبة !

انظر الكود: (المترجم لم يعترض و قد ظهر لي رمز غريب جدا)

#include<stdio.h>
#include<stdlib.h>
int main()
{
   char ch=-65;
   printf("%c\n",ch);
   system("pause");
   return 0;
}

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

عليكم السلام ورحمة الله وبركاته

إذا عُرف السبب بطُل العجب! :happy:

نوع البيانات char وعلى المستوى المنخفظ هو اصغر جزء يمكن حجزه في الذاكرة لتخزين أي عدد صحيح ضمن ترتيب تسلسلي معين وهو ما يُعرف بـ range. حتى وإن كان المتغير من نوع char يُعامل على أنه حرف أو رمز مطبوع أو غير مطبوع على الشاشة فإنه ذو أصول عريقة تنحدر من سلالة نوع البيانات للأعداد الصحيحة وهو int :happy: (آسفة للتعبير).

هناك تطبيقات سريعة على حجز الذاكرة ومع الأعداد الصحيحة تنادي بأفضلية نوع البيانات char عن int. نستطيع على سبيل المثال التعامل مع هذا النوع على انه عدد صحيح في تطبيقات حسابية بحتة. تماماً مثل اختها الآنسة bool في سي++ فهي تُعامل معاملة العدد الصحيح إذا اتقنا التعامل معها على هذا الأساس لأن true هي عبارة عن العدد الصحيح 1 و false هي عبارة عن العدد الصحيح 0.

لاحظ الكود التالي ولاحظ اختلاف المخرجات والتفسير...

#include <iostream>
using namespace std;




int main()
{

    bool a = true;
    char b = 2;
    int c = a + b;

    cout << a << endl; // true
    cout << b << endl; // character حرف يعني
    cout << c << endl; // a + b = 3

    return 0;
}

لذلك يمكننا كتابة أي قيمة لأي عدد صحيح ضمن الترتيب التسلسلي الذي يستوعبها المتغير من نوع char وهو بايت في معظم الحواسيب...

موفق يارب

لماذا تريد المترجم يعترض على القيمة تلك وهي ضمن الترتيب التسلسلي range المسموح به لنوع البيانات char؟ :happy:

سأجيبك على موضوعي الذي تسأل عنه من خلال الرابط بالأعلى...

موفق يارب

1

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#5

السلام عليكم

أشكرك أختي الكريمة على المساعدة :) ولكنني أرى أنك خرجت عن موضوع السؤال قليلا :blush:

ياريت الأجوبة تقتصر على السؤالين اللذين طرحتهما في المشاركة رقم 3.

تحياتي.

#6

على ما اذكر كنت أكتب الارقام الثناءية بهذا الشكل

unsigned char c;
c=0b111;

أي أن قيمة c هي 7 بالنضام العشري

تم تعديل هذه المشاركة بواسطة A.S Hack في 3 أغسطس 2010 في 14:44

−1

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

#7

السلام عليكم

اقتباس
على ما اذكر كنت أكتب الارقام الثناءية بهذا الشكل

unsigned char c;
c=0b111;

أي أن قيمة c هي 7 بالنضام العشري

وضعت الفكرة في هذا الكود:

#include<iostream>
using namespace std;
int main()
{
   unsigned char c;
   c=0b111;
   cout<<c<<endl;
   system("pause");
   return 0;
}

و ظهر لي الخطأ التالي:

invalid suffix "b111" on integer constant

و هذا شيء طبيعي ! لأن الأعداد التي تبدأ بصفر تُعتبر من النظام الثماني, الذي لا يوجد فيه الحرف b !!!

#8
khaled_prg كتب:

السلام عليكم

انظروا هذا الموضوع:أسئلة في المؤشرات

و بالتحديد المشاركة رقم 2 للأستاذ وجدي عصام و ما يهمني منها (الآن) هي هذه الفقرة:

ما تعليقكم !؟

و لكن كيف تكون المتغرات الحرفية تمثل جدول آسكي و مع ذلك تأخذ أعداد سالبة !؟

سلامي :)

عفواً :happy:

هذه المشاركة رقم ثلاثة

لم أخرج عن الموضوع ابداً...

إجابة السؤال الأول فيها كانت بواسطة تعليق خالد بالأعلى!

وهذا صحيح!

السؤال التاني موجود في أصل الموضوع ايضاً ولم يجيبك احد عليه اصلاً بالتفصيل على الأقل, والسبب موجود في مشاركتي رقم اربعة! :happy:

فنوع البيانات char يُستعمل لتخزين كود حرف أو حرف, ليس مخصصاً لجدول آسكي وحسب!

بل يمثل بايتByte من الأعداد الصحيحة على المستوى المنخفظ! سواء عدد ذو إشارة signed أو بدون إشارة unsigned ضمن منظومة الأعداد(النطاق الترتيب) التي تستوعبها وحدة التخزين بايت.

فما الغريب في العدد السالب في متغير حرفي!! :happy:

آسفة على الإطالة...

موفق يارب

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#9

السلام عليكم

شوفي يا رغد, حسب ما اعرف فإنه إذا كان char بين 0 و 255 فإنه يمثل جدول آسكي :)

طيب ..إذا كان char قيمته عدد سالب !!,أي الحروف يمثل !؟ :wink:

سلامي :)

#10
khaled_prg كتب:

السلام عليكم

شوفي يا رغد, حسب ما اعرف فإنه إذا كان char بين 0 و 255 فإنه يمثل جدول آسكي :)

طيب ..إذا كان char قيمته عدد سالب !!,أي الحروف يمثل !؟ :wink:

سلامي :)

عليكم السلام...

ذلك ما كنّا نبغ! :happy:

هذا بالنسبة إذا كانت char باعتبارها unsigned!

الآن انتهينا من لماذا تقبل عدد سالب ضمن كذا كذا!! صح هيك؟ حتى نبطل التعجب الذي لديك.

عموماً مجموعة كود الأحرف ليست فقط ASCII وهناك أنظمة فيها مجموعة(طقم) أحرف مشفرة بأعداد سالبة...

وكما لاحظت أنت من خلال البرنامج والأمثلة فعندما تُدخل عدد سالب يقوم نظامك مع الكمبايلر بتفسيره على أساس أنه حرف غالباً!! ويبحث عن أي تفسير مناسب للعدد السالب إذا تعاملنا معه على اساس انه حرف!

إما ابتسامة أو رمز لاتيني او إغريقي او سورياني :happy: ... او حرف غير مطبوع ليس بالضرورة موجوداً ضمن طقم ASCII.

و ASCII ليست دائماً موجبة...

موفق يارب.

1

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#11

السلام عليكم

اقتباس
هناك أنظمة فيها مجموعة(طقم) أحرف مشفرة بأعداد سالبة...

ممكن تعطيني اسم أحد هذه الجدوال لو سمحت :wacko: :blink:

اقتباس
ASCII ليست دائماً موجبة

:ohmy: كيف يا أختي الكريمة !؟ :wacko:

انظري جدول الآسكي من هنا

تحياتي :)

#12
اقتباس
حسب ما أعرف فإن ترميز الآسكي يبدأ من صفر و ينتهي بـ 255 مما يعني أنه يوجد 256 حرف في الجدول.

هذا غير صحيح فترميز الأسكى يستهلك فقط 7 بت اى من صفر و حتى 127 و المساحه الباقيه هى مثل الـ Free store و سبب اتاحة امكانية التعامل مع نوع حرفى على انه unsigned هو بسبب اضافة دعم unicode عليه فمثلا داخل windows يتم التعامل مع النوع char على انه يتبع code page معينه (ANSI code page) - لا اتذكر رقمها - فى حين انه داخل linux يتم التعامل مع النوع unsigned char ضمنيا بإستخدام utf-8، ايضا انت لديك النوع wchar_t و الذى يمثل utf-16 - الـ endians تعتمد على نظام التشغيل.

امر اخر الطبيعه الإفتراضيه للنوع char تعتمد على المترجم فمثلا داخل مترجم انتل و ميكروسوفت الوضع الإفتراضى للنوع char هو unsigned و قد يختلف هذا الأمر مع مترجمات اخرى.

اقتباس
و لكن ماذا لو أردنا إسناد قيمة من النظام الثنائي .. كيف نُسندها !؟

لن يمكنك هذا لسبب بسيط تم ذكره - ضمنيا - من قبل فى موضوع اخر و هو اللغه تشترط مدى معين من الأرقام هذه الأرقام تم تحديدها بالنظام العشرى لذا عندما تحدد انت الرقم بأى صيغه كانت - عشري، سداسى عشري او ثمانى - فهذه الأرقام توجد طريقه واحده فقط لتحويلها للنظام العشرى لذها يسهل التحقق من المدى الذى تشترطه اللغه و لكن إذا قمت بكتابة الرقم بالصيغه الثنائيه فستجد انه يوجد احتمالين لترميز هذا الرقم و تسمى endians و بالتالى ستضع المترجم فى حالة حرجه لأنه لا يعرف اى ترميز تقصد هل هو big endian ام little endian.

ايضا الذاكره يتم تمثيل فيها الأرقام بالنوع الثنائى و حيث انه توجد العديد من العتاد التى تقوم بترميز الأرقام بشكل مختلف داخل الذاكره و حيث ان اللغه منفصله عن العتاد لذا ترميز الأرقام الثنائيه هى امر محرم داخل اللغه.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 3 أغسطس 2010 في 23:01

2

مدونتي: C++ Tips and Tricks

#13
محمد علاء الدين كتب:

هذا غير صحيح فترميز الأسكى يستهلك فقط 7 بت اى من صفر و حتى 127

خطاْ :happy:

فماذا عن Extended ASCII Codes ?

شكراً

1 −1

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#14
khaled_prg كتب:

السلام عليكم

ممكن تعطيني اسم أحد هذه الجدوال لو سمحت :wacko: :blink:

:ohmy: كيف يا أختي الكريمة !؟ :wacko:

انظري جدول الآسكي من هنا

تحياتي :)

حافظتو صم :lol:

ولكن قرأت قبل ذلك أنها تختلف ضمن معايير معينة.

فسروا لي تلك الرموز بالأعداد السالبة إذن!! :happy:

هكذا اتذكر قراتي فلغتي سي وسي++ لم تصمم من أجل نظام تشغيل معين ومنظومة معينة من الحروف!!

موفقين :happy:

تم تعديل هذه المشاركة بواسطة ♥رغـد♥ في 4 أغسطس 2010 في 04:03

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#16
اقتباس
فماذا عن Extended ASCII Codes ؟

الـ Extended ASCII ليست ضمن جدول ASCII الإفتراضى و يمكنك مراجعة هذا الرابط من wikipedia الذى يحتوى على معلومات عديده بهذا الشان منها تعريف الـ Extended ASCII و هو:

اقتباس

The term extended ASCII (or high ASCII) describes eight-bit or larger character encodings that include the standard seven-bit ASCII characters as well as others. The use of the term is sometimes criticized, because it can be mistakenly interpreted that the ASCII standard has been updated to include more than 128 characters or that the term unambiguously identifies a single encoding, both of which are untrue.

جدول ASCII الإفتراضى يحتوى على 128 رمز فقط و حيث ان العديد من اللغات تحتوى على عدد من الرموز اكثر من 128 و ايضا حيث ان اقل مساحه بالذاكره يمكنها تخزين 256 قيمه مختلفه لذا قام بعض المصنعين بإستخدام الـ 128 بت الباقيه فى وضع رموز اللغات التى يريدوها و حيث ان حتى الـ 128 بت الإضافيه لم تكن تكفى و مع ظهور معضلات جديده قامت منظمة الـ ISO بإصدار صفحة محارف تستهلك جميع الـ 8 بت و تحتوى على نسختها من جدول ASCII بالإضافه لرموز اللغات الأخرى و حيث ان ASCII هى الأساس فقد تم تثبيت أول 128 بت كما هم و تم تحديد قيم الـ 128 بت الباقيه حسب لغات معينه و تم اعطاء كل لغه رقم حيث عند تحديده يتم استخدام هذا المدى الخاص به من الحروف، الرقم الخاص بكل لغه يسمى بالـ code page، فى حالة اللغه الإنجليزيه فإنه يتم استخدام الـ 128 بت فى رموز مختلفه احيانا يطلق عليها ASCII Art.

قامت اغلب انظمة التشغيل وقتها بإستخدام هذا الإسلوب فى التعامل مع النصوص لأنه يسهل الكثير، المشكله انه حتى مع هذا الإسلوب لم تكن 128 بت كافيه لذا تم التوسع فى المساحه التخزينيه للحرف و اصبحت 2 بايت و تعرف بـ multibyte encodings او wide character و داخل بيئة مايكروسوفت تعرف بـ multibyte character و حيث ان هذا النظام كان ناجح جدا و لكنه كان مبنى على الإسلوب القديم و هو نظام الـ code page حيث بعد الـ 128 بت الأساسيه يصبح كل رقم يقابل حرف معين داخل لغته و هو ما ادى لظهور اساليب جديده تم اعتمادها و تطويرها من قبل منظمة Unicode.

اقتباس
فسروا لي تلك الرموز بالأعداد السالبة إذن!! :happy:

عندما يتم محاولة طباعة قيمه يحتويها كائن من نوع char فسواء كان signed او unsigned فإن نظام التشغيل يقوم بتحويله ضمنيا إلى النوع unsigned ثم يقوم بإستخدام الـ code page اللإفتراضيه له لذا اذا تم استخدام الرقم -16 سيقوم نظام التشغيل بإحضار المتمم له داخل النوع unsigned - و هو 240 - و سيبحث عن الرمز المقابل لهذا الرقم و سيقوم بإظهاره.

اقتباس
هكذا اتذكر قراتي فلغتي سي وسي++ لم تصمم من أجل نظام تشغيل معين ومنظومة معينة من الحروف!!

لغتى السى و السى++ لا علاقة لها بالعتاد (الهاردوير) و ليس انظمة التشغيل، فحتى مع نوع مثل char توجد حدود تم وضعها داخل الـ standard و على صانع المترجم ان يلتزم بها.

إذا اردت دليل على ذلك إليك دوال التعامل مع النصوص و تحديد اى من الحروف هو رقم او حرف او رمز او مساحه خاليه هذه الدوال تضمينها يتبع نظام التشغيل و لكن شرط اساسى الإلتزام بصفحة محارف ASCII ألإفتراضيه و المكونه الخاصه بأول 128 بت للنوعين char و wchar_t، و مع الإصدار الجديد من لغتى الـ C++/C ٍيتم اضافة دعم حروف Unicode و ذلك لأنها لا تتبع نظام تشغيل معين و مدى الحروف للغات بها ثابت لا يتغير و حتى مع الأنواع ذات المساحات الصغيره توجد algorithms ثابته للتحويل من و إلى كل انظمتهم.

الكلام التالى من الـ Draft C Standard بتاريخ 25-6-2010

اقتباس

An object declared as type char is large enough to store any member of the basic execution character set. If a member of the basic execution character set is stored in a char object, its value is guaranteed to be nonnegative. If any other character is stored in a char object, the resulting value2520ims implementation-defined but shall be within the range of values that can be represented in that type.

اقتباس

The three types char, signed char, and unsigned char are collectively called the character types. The implementation shall define char to have the same range, representation, and behavior as either signed char or unsigned char.

بالنسبة للغة الـ C++ من C++ Standard 2nd Edition لسنة 2003

اقتباس

Objects declared as characters (char) shall be large enough to store any member of the implementation’s basic character set. If a character from this set is stored in a character object, the integral value of that character object is equal to the value of the single character literal form of that character. It is implementation defined whether a char object can hold negative values. Characters can be explicitly declared unsigned or signed. Plain char, signed char, and unsigned char are three distinct types. A char, a signed char, and an unsigned char occupy the same amount of storage and have the same alignment requirements (3.9); that is, they have the same object representation. For character types, all bits of the object representation participate in the value representation. For unsigned character types, all possible bit patterns of the value representation represent numbers. These requirements do not hold for other types. In any particular implementation, a plain char object can take on either the same values as a signed char or an unsigned char; which one is implementation-defined.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 4 أغسطس 2010 في 23:05

3

مدونتي: C++ Tips and Tricks

#17

السلام عليكم

و الله العظيم هذه المشاركة من العيار الثقيل :wink:

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

هل يتغير الـ Extended ASCII من جهاز لآخر !؟

لأنني أظهرت رموز الآسكي (باستخدام اللوب) و ظهر لي جدول مغاير للجودل الموجود في هذا الرابط !!!

تحياتي :)

#18
اقتباس
هل يتغير الـ Extended ASCII من جهاز لآخر !؟

يوجد إلتباس لدى الناس بين الـ Extended ASCII و الـ Code Page، حيث أن الـ Extended ASCII مسمى اصبح غير متداول و يستخدم ليشير إلى ASCII Art و هي الأشكال التى يتم استخدامها للأكواد من 128 و حتى 255، بالنسبه للـ Code Page اصبحت هى البديل القياسى و عندما تقول انك تستخدم رموز ASCII فهذا يعنى انك تستخدم رموز ASCII الموجوده بأول 128 بت بالـ Code Page الخاصه بلغه معينه، هذه اللغه المعينه هى لغة الإدخال الحاليه داخل نظام تشغيلك.

بالنسبه لويندوز الـ Code Page الإفتراضيه إذا كان برنامجك هو Console Application تحتوى على رموز ASCII القياسيه و ASCII Art و إذا كان برنامجك ذات واجهه GUI تعتمد على الـInput Language فى جهازك.

و الله ولي التوفيق

مدونتي: C++ Tips and Tricks

#19

السلام عليكم

اقتباس
الـ Extended ASCII مسمى اصبح غير متداول و يستخدم ليشير إلى ASCII Art و هي الأشكال التى يتم استخدامها للأكواد من 128 و حتى 255

هل تتغير هذه الأشكال!؟ و على أي أساس تتغير!؟

اقتباس
عندما تقول انك تستخدم رموز ASCII فهذا يعنى انك تستخدم رموز ASCII الموجوده بأول 128 بت بالـ Code Page الخاصه بلغه معينه، هذه اللغه المعينه هى لغة الإدخال الحاليه داخل نظام تشغيلك.

ما فهمت الـ Code Page :blush:

#20
محمد علاء الدين كتب:

لغتى السى و السى++ لا علاقة لها بالعتاد (الهاردوير) و ليس انظمة التشغيل، فحتى مع نوع مثل char توجد حدود تم وضعها داخل الـ standard و على صانع المترجم ان يلتزم بها.

و الله ولي التوفيق

والهاردوير طبعاً, مشاركتي كانت اختصار فقط وتركت الأهم وجعلت نظام التشغيل رمزاً.

عموماً مسألة الـ standard والإلتزام بها لا تجعل من لغتي سي وسي++ مقيدة بنظام تشغيل معين وإنما المترجمات هي التي تفرض علينا ذلك! هل هذا صحيح :happy:

عموماً شكراً لك اخي محمد علاء الدين...

مشاركة فيها بعض المعلومات القيمة جداً ولي عودة لقراءتها بتمعن اكتر! مع كباية شاي كبيرة :happy:

موفقين جميعاً يارب

[وسط]

♥ Countess ♥

57899411.gif

♥

[/وسط]

#21
اقتباس
هل تتغير هذه الأشكال!؟ و على أي أساس تتغير!؟

تبعا للتطور التاريخى للـ ASCII art هذه الأشكال لها قيم ثابته لا تتغير إلا بتغير الـ Code Page.

اقتباس
ما فهمت الـ Code Page :blush:

يمكنك تخيل الـ Code Page على انها ملف محتوياته تصف الكيفيه التى سيتم اظهار حروف لغه معينه على الشاشه، هذا الملف يحتوى على مجموعه من الأرقام و التى فيما بعد يتم ربطها بالحروف الخاصه باللغه التى يمثلها هذا الملف.

و قبل أن تتسأل عن الكيفيه التى يتم بها ربط هذه الأرقام بالحروف و على أى اساس تتم هذه العمليه، و غيرها من الأسئله المتعلقه بهذه النقطه; احب ان اعلمك انه يصعب اجابة مثل هذه الأسئله بمشاركة او اثنين حيث انه يوجد علم كامل يختص بمثل هذه الأمور و هو Typography و يمكنك مراجعة Unicode Standard إن اردت ان تتعلم المزيد عن هذه الأمور (و هذا ما لا انصحك به إلا إن كنت تنوى ترك دراسة لغة السي لفتره طويله).

اقتباس
عموماً مسألة الـ standard و الإلتزام بها لا تجعل من لغتي سي وسي++ مقيدة بنظام تشغيل معين وإنما المترجمات هي التي تفرض علينا ذلك! هل هذا صحيح :happy:

الإلتزام بالـ standard يجعل من الملف التنفيذى الناتج للغتين محكوم بنظام التشغيل و ذلك لأن العديد من الأمور الموجوده بالـ standard تجعل صانع المترجم يحدد كيف يريد ان تتم العديد من العمليات.

و الله ولي التوفيق

تم تعديل هذه المشاركة بواسطة محمد علاء الدين في 4 أغسطس 2010 في 22:10

2

مدونتي: C++ Tips and Tricks

#22

فقط أريد أن أحيك أخي محمد علاء الدين... تحية حب و إحترام .. . :D

#23

ألم أقل لك سابقا أنك جوهر من جواهر الفريق العربي للبرمجة !؟ :wink:

ماشاء الله عليك ياعلاء .. و الله مبدع بجد :wub:

احترامي :)

تم تعديل هذه المشاركة بواسطة khaled_prg في 5 أغسطس 2010 في 09:16

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…