/** scope.c - scope and variables explained Copyright (C) 2023-2024 Mert Gör and contributors This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Feel free to send an email to mertgor@masscollabs.xyz for your questions **/ #include int main() { int a; { int b; b = 20; a = 10; printf("a : %d, b : %d\n", a, b); // correct way to get done the job/task } printf("a : %d\n", a); // correct way to get done the job/task for a variable // printf("b : %d\n", b); // error ! /** ~/Projects/hwpplayer1/c-course/c-basic $ gcc scope.c scope.c: In function ‘main’: scope.c:35:22: error: ‘b’ undeclared (first use in this function) 35 | printf("b : %d\n", b); // error ! | ^ scope.c:35:22: note: each undeclared identifier is reported only once for each function it appears in **/ return 0; } /** ~/Projects/hwpplayer1/c-course/c-basic $ ./a.out a : 10, b : 20 a : 10 **/