[Powered by Google Translate] DAVID DICIURCIO: ರಲ್ಲಿ ಹಿಡಿಯಲು ಆದ್ದರಿಂದ ಒಂದು ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಸ್ಕೋಪ್ ವಿಚಾರವಾಗಿದೆ. ಸ್ಕೋಪ್ ಒಂದು ವೇರಿಯೇಬಲ್ ಸನ್ನಿವೇಶಗಳು ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು ಗೋಚರ ಅಥವಾ ಪ್ರವೇಶಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ಈಗ ನಾವು ಒಂದು ಕಾರ್ಯ, ಮುಖ್ಯ, ಹೇಳುತ್ತಾರೆ ಒಂದರಿಂದ ಎರಡು ಒಂದು ವೇರಿಯೇಬಲ್, X, ಹೆಚ್ಚಿಸಲು ಭಾವಿಸಲಾಗಿದೆ. ನಾವು ನೋಡಬಹುದು ಎಂದು, ಮುಖ್ಯ, ಒಂದು X ಆರಂಭಿಸುತ್ತದೆ ತೋರಿಸುತ್ತದೆ ಕೆಲವು ಪಠ್ಯ, ನಂತರ ಮೊದಲು ಕಾರ್ಯ ಇನ್ಕ್ರಿಮೆಂಟ್ ರನ್ಗಳು ಹೆಚ್ಚು ಪಠ್ಯ ಮುದ್ರಣ. ಈ ಕಾರ್ಯವನ್ನು ಸರಿಯಾಗಿ ಚಲಾಯಿಸಲು ಬಂದಾಗ, ಅದನ್ನು 2 X ಮುದ್ರಿಸುತ್ತದೆ. ಇದನ್ನು ಪ್ರಯತ್ನಿಸಿ ನೋಡೋಣ. ನೀವು ನೋಡಬಹುದು ಆದ್ದರಿಂದ, ಮುಖ್ಯ ನಾವು ನಿರೀಕ್ಷೆ ಏನು ಇಲ್ಲ. ಇದು ಮೌಲ್ಯ 1 ಹಿಂದಿರುಗಿಸುತ್ತದೆ, ಬದಲಿಗೆ 2 ಗಿಂತ ನಾವು ನಿರೀಕ್ಷಿಸಲಾಗಿದೆ. ಈ ದೋಷವನ್ನು ಕಾರಣ ವ್ಯಾಪ್ತಿ ಮೂಲಕ ವಿವರಿಸಬಹುದು. ಕಾರ್ಯದಲ್ಲಿ, ಮುಖ್ಯ, ನಾವು X ಆರಂಭಿಸಲಾಗಿಲ್ಲ ಮಾತ್ರ ಕಾರ್ಯ ಒಳಗೆ. ಅರ್ಥಾತ್, ವೇರಿಯಬಲ್ X ಒಳಗೆ ಸ್ಥಳೀಯವಾಗಿ ಘೋಷಿಸಲಾಗುತ್ತದೆ ಕ್ರಿಯೆ, ಮುಖ್ಯ, ಮತ್ತು ಲಭ್ಯವಿರುವುದಿಲ್ಲ ಕ್ರಿಯೆಯ ಹೊರಗೆ. ಕೇವಲ ಮುಖ್ಯ ಈ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ X ಪ್ರವೇಶಿಸಬಹುದು. ನಾವು ಇನ್ಕ್ರಿಮೆಂಟ್ ಕರೆ ನಾವು ಇನ್ಪುಟ್ ಎಂದು X ಹಾದು, ಆದರೆ ಇಲ್ಲ x ನ ಕೇವಲ ಒಂದು ಪ್ರತಿಯನ್ನು. ಈ ಪರಿಣಾಮವಾಗಿ, ಫಂಕ್ಷನ್ ಇನ್ಕ್ರಿಮೆಂಟ್ ಮಾತ್ರ ಸೇರಿಸುತ್ತದೆ x ನ ಮೌಲ್ಯವನ್ನು ಪ್ರತಿಯನ್ನು ಮೌಲ್ಯವನ್ನು 1. ಆದರೆ ಸ್ವತಃ X ಅಲ್ಲ. ನಾವು ಪ್ರಮುಖ ಹಿಂದಿರುಗುವಾಗ, X ಸ್ವತಃ ಬದಲಾಗಿಲ್ಲ. ಆದ್ದರಿಂದ X ಔಟ್ ಮುದ್ರಣದ ಕೇವಲ 1 ಮೌಲ್ಯವನ್ನು ನೀಡುತ್ತದೆ. ಅಲ್ಲದೆ, ಆ ಪ್ರಶ್ನೆಯನ್ನು ಎಲೆಗಳು: ನಾವು ಹೇಗೆ ಹೊಂದಿಸುವುದು ಮಾಡಬೇಕು ಈ ಕಾರ್ಯ? ಒಂದು ಪರಿಹಾರ ಇನ್ಕ್ರಿಮೆಂಟ್ ಮೌಲ್ಯವನ್ನು ಮರಳಿ ಹೊಂದಿದೆ. ಈ ರೀತಿ, ಕಾರ್ಯ ಇನ್ಕ್ರಿಮೆಂಟ್ ತಿನ್ನುವೆ ಒಂದು ಪೂರ್ಣಾಂಕ ನಮಗೆ ಮತ್ತೆ ನೀಡಿ. ಇಲ್ಲಿ ನಮ್ಮ ಪರಿಷ್ಕೃತ ಕೋಡ್ ಇಲ್ಲಿದೆ ಪರ್ಯಾಯ ಇನ್ಕ್ರಿಮೆಂಟ್ ಕಾರ್ಯ. ಇಲ್ಲಿ, ನಾವು ಬದಲಿಗೆ ಕೇವಲ ಅಂತ್ಯದಲ್ಲಿ ಹೆಚ್ಚು, x + 1 ಮರಳಿದರು X X + 1 ಸಮಾನವಾಗಿರುತ್ತದೆ ಆಗಿತ್ತು. ಹಾಗೆಯೇ, ನಾವು ಉತ್ಪತ್ತಿಯು ಬದಲಿಗೆ ಗಮನಿಸಿದಿರಾ ತೆಗೆದುಕೊಳ್ಳಬಹುದು ಹೆಚ್ಚಳ, ಹಿಂದೆ ಹೇಳಿದಂತೆ ಇಂಟ್ ಮೂಲಕ ಶೂನ್ಯವಾಗುವ ಎಂದು ಇನ್ಕ್ರಿಮೆಂಟ್ ಈಗ ಒಂದು ಪೂರ್ಣಾಂಕ ಮೌಲ್ಯ ಬ್ಯಾಕ್ ಪಾಸ್ ಕಾಣಿಸುತ್ತದೆ. ಈಗ ಇನ್ಕ್ರಿಮೆಂಟ್ ರನ್ಗಳು ನಂತರ, ಅದರ ಮೌಲ್ಯದೊಂದಿಗೆ ಹಿಂತಿರುಗುವುದು 2, ನಾವು ಉದ್ದೇಶವನ್ನು ನಿಖರವಾಗಿ ಮಾಹಿತಿ. ವ್ಯಾಪ್ತಿಯ ಪ್ರಾಮುಖ್ಯತೆಯನ್ನು ಪ್ರದರ್ಶಿಸುವ ಇನ್ನೊಂದು ಪರಿಸ್ಥಿತಿ scopeloop.c ರಲ್ಲಿ ಆಗಿದೆ. ಈ ಕೋಡ್, ನಾವು ಲೂಪ್ ಒಂದು ಇಲ್ಲದ ವೇರಿಯಬಲ್ ಒಟ್ಟು ಪ್ರತಿ ಹಂತದ ಸಮಯದಲ್ಲಿ ಆರಂಭಿಸಲಾಗಿಲ್ಲ ಇದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಕೋಡ್ ಕಂಪೈಲ್ ಮಾಡುವುದಿಲ್ಲ. ವೇರಿಯಬಲ್ ಒಟ್ಟು ನಿಜವಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ ಏಕೆಂದರೆ ಲೂಪ್ ಹೊರಗೆ. ಕುಣಿಕೆಗಳು ಒಳಗೆ ಡಿಕ್ಲೇರ್ಡ್ ಅಸ್ಥಿರ ಮಾತ್ರ ಒಳಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ ಲೂಪ್ ಸ್ವತಃ ನಮ್ಮ ದೋಷ ಪ್ರದರ್ಶಿಸಲಾಯಿತು ಸಂದೇಶ, ಒಟ್ಟು ಪ್ರಕಟಿಸದ. ವೇರಿಯಬಲ್ ಒಟ್ಟು ವ್ಯಾಪ್ತಿಯಲ್ಲಿ ಡಿಕ್ಲೇರ್ಡ್ ಇನ್ನೂ ಕಾರ್ಯ ಮುಖ್ಯ. ಇದಲ್ಲದೆ, ಲೂಪ್ ನಮ್ಮ ಪ್ರತಿಯೊಂದು ಪುನರಾವರ್ತನೆ ಸಮಯದಲ್ಲಿ, ನಾವು 0 ನಮ್ಮ ಒಟ್ಟು reinitializing ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಸ್ವತಃ ಕಂಪೈಲ್ ರಿಂದ ಕೋಡ್ ಇರಿಸಿಕೊಳ್ಳಲು, ಆದರೆ ಇಲ್ಲ ಇದುವರೆಗೆ 1 ಕಳೆದ ಒಂದು ಮೌಲ್ಯಕ್ಕೆ ಕೂಡಿಸಿ ರಿಂದ ಒಟ್ಟು ತಡೆಗಟ್ಟಬಹುದಾಗಿದೆ. ಮತ್ತೆ, ಈ ಸರಿಪಡಿಸಲು ಉತ್ತಮ ರೀತಿಯಲ್ಲಿ ಏನು? ಸುಲಭ ವಿಧಾನಗಳ ಒಂದು ಒಟ್ಟು ಸ್ಥಳೀಯ ಮಾಡುವ ಒಳಗೊಂಡಿದೆ ಬದಲಿಗೆ ಲೂಪ್ ಬಿಟ್ಟು ಹೆಚ್ಚು ಮುಖ್ಯ ಕಾರ್ಯ,,. ಇದು ಅಂತಿಮವಾಗಿ ವಾಸ್ತವವಾಗಿ ಹೆಚ್ಚಿಸಲು ಒಟ್ಟು, ಮತ್ತು ಅದು ಲೂಪ್ ಫಾರ್ ನಂತರ ಮುದ್ರಿತ ಅವಕಾಶ. ನಾನು ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಸಾರಾಂಶ ವಿಲ್ ಇನ್ನೊಂದು ತಂತ್ರ ಎಂದು ಜಾಗತಿಕ ಅಸ್ಥಿರತೆಗಳ ಬಳಕೆ ಎಂದು. ಜಾಗತಿಕ ಅಸ್ಥಿರ ಮುಖ್ಯ ಮೊದಲು ಡಿಕ್ಲೇರ್ಡ್ ಎಂದು ಚರಗಳಾಗಿವೆ ಇಡೀ ಕಾರ್ಯಕ್ರಮವನ್ನು ತಮ್ಮ ಮೌಲ್ಯವನ್ನು ಕಾಯ್ದುಕೊಳ್ಳುವುದು. ಸಹಜವಾಗಿ, ಕಾರ್ಯಗಳು, ಜಾಗತಿಕ ಮೌಲ್ಯವನ್ನು ಬದಲಾಯಿಸಬಹುದು ಆದರೆ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ರೀತಿಯ ವ್ಯಾಪ್ತಿ ಹೊರಗೆ ಹೋಗಿ ಇಲ್ಲ. ಆದಾಗ್ಯೂ, ಜಾಗತಿಕ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೋಡಲಾಗುವುದು ಪ್ರವೃತ್ತಿ ಉತ್ತಮ ವಿಧಾನಗಳಿವೆ ಏಕೆಂದರೆ ಕೆಟ್ಟ ವಿನ್ಯಾಸದ ಮೇಲೆ ಕಾರ್ಯಗಳ ಜೊತೆಗೆ ಮಾಹಿತಿ ಲಭ್ಯ. ಉದಾಹರಣೆಗೆ, ಪಾಯಿಂಟರ್ಗಳನ್ನು. ಮತ್ತೊಂದು ಸಮಯದಲ್ಲಿ ಆದರೆ. ಅಂತಿಮವಾಗಿ, ಅದು ವ್ಯಾಪ್ತಿ ಅರಿವನ್ನು ಹೊಂದಲು ಪ್ರಮುಖ ಕಂಪ್ಯೂಟರ್ ಮೆಮೊರಿ, ಅಥವಾ RAM ಸಂದರ್ಭದಲ್ಲಿ. ನಾವು ಒಂದು ಪ್ರೋಗ್ರಾಂ ಕಾರ್ಯಗತಗೊಳಿಸಿ ಮಾಡುವಾಗ, ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳು ಮತ್ತು ಕಾರ್ಯಗಳು ನಿರ್ದಿಷ್ಟ ಸ್ಥಳ ಸೇರಿಸಲಾಗುತ್ತದೆ ರಾಮ್ ಸ್ಟ್ಯಾಕ್ ಕರೆಯಲಾಗುತ್ತದೆ. ಕಾರ್ಯಗಳನ್ನು ಹಿಂದಿರುಗಿದ, ಅಸ್ಥಿರ ಸ್ಟಾಕ್ ಚೌಕಟ್ಟುಗಳು ಗಳು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಹೆಚ್ಚು ಮೆಮೊರಿ ಮುಕ್ತಗೊಳಿಸುವ ಸ್ಟಾಕ್ ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ಆದ್ದರಿಂದ ಸ್ಕೋಪ್ ವಿಮರ್ಶೆಯಲ್ಲಿ, ನೀವು ಈ ಮೂರು ನೆನಪಿಟ್ಟುಕೊಳ್ಳಲು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ ಪ್ರಮುಖ ಅಂಶಗಳನ್ನು. ಒಂದು, ಸ್ಕೋಪ್ ಸ್ಥಳೀಯ ಅಥವಾ ಜಾಗತಿಕ ಆಗಿರಬಹುದು. ಇದು ವೇರಿಯಬಲ್ ಡಿಕ್ಲೇರ್ಡ್ ಅಲ್ಲಿ ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಕಾರ್ಯಗಳನ್ನು ಘೋಷಿಸಲಾಗಿದೆ ಅಥವಾ ಆರಂಭಿಸಲಾಗಿಲ್ಲ ಎರಡು, ಚರಗಳಾಗಿವೆ ಆ ಕಾರ್ಯಕ್ಕೆ ಸ್ಥಳೀಯ ಮತ್ತು ಇತರ ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಕನಿಷ್ಠ ಪಾಯಿಂಟರ್ಸ್ ಬಳಸದೆ ಕಾರ್ಯಗಳನ್ನು. ಅಂತಿಮವಾಗಿ, ಅಸ್ಥಿರಗಳು ಎಂದು ಕುಣಿಕೆಗಳು ಸ್ಥಳೀಯ ಗಳು ಒಳಗೆ ಘೋಷಿಸಿತು. ಅಸ್ಥಿರ ಪ್ರವೇಶಿಸಲು ಅವಕಾಶವಿರುವುದಿಲ್ಲ ಲೂಪ್ ಹೊರಗೆ. ಈಗ ವ್ಯಾಪ್ತಿ ಮೇಲೆ ಅಷ್ಟೇ. ವೀಕ್ಷಿಸಲು ಧನ್ಯವಾದಗಳು.