[Powered by Google Translate] DAVID DICIURCIO: إذن مفهوم هام لفهم في البرمجة هي فكرة النطاق. ويمكن تعريف نطاق والسياق الذي هو متغير مرئية أو الوصول إليها. على سبيل المثال، دعنا نقول لدينا وظيفة، الرئيسي، وهذا هو من المفترض أن زيادة متغير، X، من واحدة إلى اثنين. كما يمكننا أن نرى، تهيئة X الرئيسية إلى واحد، يطبع بعض النص، ثم يدير الزيادة وظيفة، قبل طباعة المزيد من النصوص. إذا كانت هذه الوظيفة ليعمل بشكل صحيح، فإنه طباعة X ك 2. دعونا نحاول ذلك. لذا، وكما ترون، لا يفعل الرئيسية ما كنا نتوقعه ل. تقوم بإرجاع قيمة 1، بدلا من ال 2 وكنا نتوقع. ويمكن تفسير سبب هذا الخطأ من قبل نطاق. في وظيفة، الرئيسية، ونحن تهيئة X فقط داخل الدالة. وبعبارة أخرى، أعلنت X متغير محليا داخل وظيفة، الرئيسي، وغير قابل للوصول خارج الوظيفة. فقط يمكن الوصول X الرئيسية في هذه الحالة. عندما ندعو الزيادة نحن لا تمر X كإدخال، ولكن مجرد نسخة من X. نتيجة لهذا، يضيف الزيادة وظيفة فقط قيمة 1 إلى نسخة من قيمة x. ولكن ليس لX نفسها. عندما نعود الى الأصل، X نفسها لم تتغير على الإطلاق. وذلك انطلاقا الطباعة X تسفر سوى قيمة 1. حسنا، ثم أن يترك هذا السؤال: كيف ينبغي لنا أن إصلاح هذه الوظيفة؟ حل واحد هو وجود طريقة إرجاع قيمة. وبهذه الطريقة، سوف الزيادة ظيفة يقدم لنا عودة عدد صحيح. حتى هنا لدينا قانون منقح مع طريقة بديلة وظيفة. هنا، ونحن بدلا من ذلك عاد X + 1، بدلا من نهاية عادلة مع x تساوي 1 + X ل. أيضا، لاحظ أننا اتخاذ محل إخراج طريقة، باطلة من قبل، مع كثافة العمليات، مشيرا إلى أن سوف تمر الآن طريقة العودة قيمة عددية. الآن، بعد عمليات الزيادة، فإنه سيعود بقيمة 2، تماما كما أننا المقصود. حالة أخرى الذي يوضح أهمية في نطاق في scopeloop.c. في هذا الرمز، لدينا لحلقة فيه متغير تتم تهيئة الكلية خلال كل خطوة. للأسف، هذا الرمز لا يتم ترجمة. ذلك لأن مجموع متغير في الواقع لا وجود له خارج عن الحلقة. أعلن المتغيرات داخل حلقات موجود فقط داخل ويتجلى حلقة نفسها في الخطأ ودينا رسالة غير معلنة، المجموع. مجموع متغير لم يعلن في نطاق وتتمثل المهمة الرئيسية لل. وعلاوة على ذلك، وخلال كل تكرار للحلقة لدينا، ونحن وإعادة تهيئة لدينا مجموعه إلى 0. هذا في حد ذاته لا تبقي رمز من تجميع، ولكنه من شأنه أن يمنع من إجمالي ملخصا من أي وقت مضى إلى قيمة الماضي 1. مرة أخرى، ما هو أفضل طريقة لإصلاح هذا؟ واحدة من أسهل الطرق يتضمن جعل إجمالي المحلية إلى وظيفة، الرئيسي، بدلا من الحلقة نفسها. وهذا المجموع إلى زيادة في الواقع، وفي نهاية المطاف، السماح طباعته بعد لحلقة. وثمة تقنية لفترة وجيزة فقط سوف تلخيص يكون استخدام المتغيرات العالمية. المتغيرات العالمية والمتغيرات التي تم تعريفها قبل الرئيسي التي تحافظ على قيمتها في جميع أنحاء البرنامج بأكمله. بطبيعة الحال، يمكن أن الوظائف تغيير قيمة عالمية، لكنها لا تخرج من نطاق مثل المتغيرات المحلية. ومع ذلك، باستخدام المتغيرات العالمية يميل إلى أن يكون عبس عليه، والتصميم السيئ، لأن هناك وسائل أفضل من تبادل البيانات بين الوظائف. على سبيل المثال، وذلك باستخدام المؤشرات. ولكن أكثر في الوقت المحدد آخر ذلك. وأخيرا، من المهم أن يكون هناك فهم من نطاق في سياق ذاكرة الكمبيوتر، أو RAM. عندما نقوم بتنفيذ البرنامج، المتغيرات المحلية وظائف تمت إضافتها إلى موقع محدد في دعا RAM المكدس. مع عودة وظائف، وإطارات كومة من المتغيرات إزالة بشكل فعال من المكدس تحرير المزيد من الذاكرة. لذلك عند مراجعة نطاق، تأكد من أن نتذكر هؤلاء الثلاثة النقاط الرئيسية. يمكن للمرء، يكون نطاق محلي أو عالمي. ذلك يعتمد على المكان الذي أعلن المتغير. اثنين، أو تهيئة المتغيرات أعلن في وظائف هي يمكن المحلية لتلك الوظيفة وليس تغييرها من قبل الآخرين وظائف، على الأقل ليس من دون استخدام المؤشرات. وأخيرا، والمتغيرات المحلية هي أيضا لحلقات التي هي أعلن الداخل. المتغيرات لا يمكن الوصول إليها خارج الحلقة. هذا كل ما في الوقت الراهن على نطاق. شكرا ليراقب.