??? 05/16/12 09:48 Read: times |
#187378 - Tried any good C book lately? Responding to: ???'s previous message |
Note that terminology and a number of answers depends on the specific compiler.
So the way to answer the questions is to read the C standard (or at least a good C book) and to read the manual for the compiler. Constants are often stored in the text segment, which is normally flash (or write-protected when program is run in RAM in modern PC-class processor). Being constant, they are read-only and don't need to be in memory with R/W access. Having an embedded processor copy the value from the flash (code space) into RAM is obviously a waste of resources, as long as the processor have reasonable instructions for reading data from the code memory. Data contains global variables (and file-local static variables) that have been given an explicit initial value. Data also contains static variables declared inside functions, since static, when used with a variable declaration inside a function, means that it's a "global" variable but without being available in the global name space. BSS contains global variables that haven't been given an explicit initial value. So they get zero-initialized. Stack isn't just local variables - it's also (normally) for return addresses from function calls. The exception is for processors that have a special return stack in hardware. What do you think happens during runtime? Haven't your teacher given you some good references to read? Any C programming book would tell you which variables have explict initial values, which are zero-initialized and which aren't initialized at all. The compiler manual will tell you where #include looks for files. It is depending on compiler where it will look. But the teacher probably expects you to give two answers here. The C programming books will tell you why. #define - doesn't store anything anywhere. The C programming books will tell you what #define does. |
Topic | Author | Date |
Memory Organization | 01/01/70 00:00 | |
Tried any good C book lately? | 01/01/70 00:00 | |
I am using Dennis Ritchie_ANCI C | 01/01/70 00:00 | |
Variables don't move just because you assign to them | 01/01/70 00:00 | |
can we start from ZERO........ | 01/01/70 00:00 | |
Have you read my original post? | 01/01/70 00:00 | |
mixing stuff | 01/01/70 00:00 | |
where it will be for MCU? | 01/01/70 00:00 | |
is there any book for this fundamental things? | 01/01/70 00:00 | |
and .... | 01/01/70 00:00 | |
In this a general or Specific Question | 01/01/70 00:00 | |
its General Que ???? | 01/01/70 00:00 | |
Separate "the C view of program" from "microcontroller view" | 01/01/70 00:00 | |
NO! | 01/01/70 00:00 | |
why not?? | 01/01/70 00:00 | |
No - generic isn't meaningful | 01/01/70 00:00 | |
Interview questions can be asked out of limited knowledge | 01/01/70 00:00 | |
Seldom "one" answer other than to trivial questions | 01/01/70 00:00 | |
In Addition | 01/01/70 00:00 | |
Embedded? | 01/01/70 00:00 | |
sometimes, usually | 01/01/70 00:00 |