CoolInterview.com - World's Largest Collection of Interview Questions
Start Your Own website Now
Sponsored Links

Interview Questions
Our Services

Get 9,000 Interview Questions & Answers in an eBook.


  • 9500+ Pages
  • 9000 Question & Answers
  • All Tech. Categories
  • 14 MB Content

    Get it now !!



    Send your Resume to 6000 Companies


  • INTERVIEW QUESTIONS HARDWARE EMBEDDED SYSTEMS DETAILS
    Question :
    Can you have constant volatile variable?
    Category Embedded Systems Interview Questions
    Rating (0.4) By 1598 users
    Added on 7/6/2005
    Views 3891
    Rate it!
    Answers:

    yes we can have constant volatile variable.

    In this current context of code will not change the value of the variable but out side of the program i.e. hardware registers can change it.



    Posted by: rajkumar    

    Contact rajkumar Contact rajkumar

    In some scenarios expressions having volatile variables cant be optimized by a compiler.



    Posted by: shashank vimal    

    Contact shashank vimal Contact shashank vimal

    precisely volatile variable warns the compiler that the value of the variable may change at any time without the knowledge of the compiler, to the code currently executed.
    volatile int * const port_add = 0x400;



    Posted by: Murali Prasath    

    Contact Murali Prasath Contact Murali Prasath

    Volatile type tell the compiler , this variable can be changed by any external tasks, So do not optimize while compiling and linking final executable.
    Here is Example:


    In Embedded system System Timer is one of the most important.

    func()
    {
    TIME* time;
    time = GetSystime();

    for ( 1000 times )
    {
    some expressions;
    }
    time = GetSystime();
    }

    In the above function , time is a structure which gets the time before and after FOR loop.
    At these two instances time is definitely different, because of FOR loop. If you go for an embedded system compiler, generally it optimizes the "time = GetSystime();" expression. because it thought that, code is redundant no need to load the getsystime value again from memory , if u dont use VOLATILE. to avoid this kind of things use Volatile.



    Posted by: Jay    

    Contact Jay Contact Jay

    Const and volatile keywords should not be used together because both are opposite in nature.
    A variable is declared as "const" means it's value is not able to be changed but if it is declared as "Volatile" then it is not under control.



    Posted by: PadmavathB    

    Contact PadmavathB Contact PadmavathB

    Difference between const and static variables are often confusing for the beginners. These are actually important features of C language. A variable declared as const can only be initialised once. The program should not alternate the value of a variable declared as const. A variable declared as const should never appear to the left of an assignment operator throughout the program. The reader may refer the C literature for appreciating the use const variable.

    Now consider a static variable. Static variables are permanent variables within their on function. Unlike global variables they are not known outside their function or file, but they maintain their values between function calls.

    For better undestanding of the concept consider the code given below.


    #include<stdio.h>

    void display (void)
    {

    int j=10;
    ++j;
    printf("J=%d ",j);

    }

    main(void)
    {

    int i;
    for (i=0;i<10;++i)
    display();

    }

    Output:

    J=11
    J=11
    J=11
    J=11
    J=11
    J=11
    J=11
    J=11
    J=11
    J=11

    In the above program consider the variable 'j'. 'j' is declared as a an ordinary local variable. It's life is only though out the function display(). After the execution of the function variable 'j' is automatically destroyed. Thus when the function is called again variable 'j' is again defined and is initialised to value 10. Thus in all cases the the value of j displayed is 11.

    Look at the code below

    #include<stdio.h>

    void display (void)
    {

    static int j=10;
    ++j;
    printf("J=%d ",j);

    }

    main(void)
    {

    int i;
    for (i=0;i<10;++i)
    display();

    }

    Output:

    J=11
    J=12
    J=13
    J=14
    J=15
    J=16
    J=17
    J=18
    J=19
    J=20

    Here the difference is that the variable 'j' is declared as static. In this case the variable 'j' will not be destroyed when the function execution is over and in addition, it also retains its last value. Thus the declaration and initialisation of 'j' will occur only once when the function is called for the first time. Thus each time the function display() is called value of 'j' is incremented.



    Posted by: Sanjeev    

    Contact Sanjeev Contact Sanjeev

    If you have the better answer, then send it to us. We will display your answer after the approval.
    Rules to Post Answers in CoolInterview.com:-

  • There should not be any Spelling Mistakes.
  • There should not be any Gramatical Errors.
  • Answers must not contain any bad words.
  • Answers should not be the repeat of same answer, already approved.
  • Answer should be complete in itself.
  • Name :*
    Email Id :*
    Answer :*
    Verification Code Code Image - Please contact webmaster if you have problems seeing this image code Not readable? Load New Code
    Process Verification  Enter the above shown code:*
    Inform me about updated answers to this question

       
    Related Questions
    View Answer
    #define cat(x,y) x##y concatenates x to y. But cat(cat(1,2),3) does not expand but gives preprocessor warning. Why?
    View Answer
    What is the output of printf(" abcd ef"); -> ef
    View Answer
    When you inherit a class using private keyword which members of base class are visible to the derived class?
    View Answer
    Can u have inline virtual functions in a class?
    View Answer
    Order of constructor and destructor call in case of multiple inheritance?
    View Answer
    Is java a pure object oriented language? Why?
    View Answer
    How would you find out the no of instance of a class?
    View Answer
    What are the 4 different types of inheritance relationship?
    View Answer
    Multiple inheritance - objects contain howmany multiply inherited ancestor?
    View Answer
    Difference between object oriented and object based languages?
    View Answer
    Scope of static variables?
    View Answer
    What happens when recursion functions are declared inline?
    View Answer
    Advantages and disadvantages of using macro and inline functions?
    View Answer
    Why cannot arrays be passed by values to functions?
    View Answer
    Can structures be passed to the functions by value?
    View Answer


    Please Note: We keep on updating better answers to this site. In case you are looking for Jobs, Pls Click Here Vyoms.com - Best Freshers & Experienced Jobs Website.

    View ALL Embedded Systems Interview Questions

    User Options
    Sponsored Links


    Copyright ©2003-2014 CoolInterview.com, All Rights Reserved.
    Privacy Policy | Terms and Conditions

    Download Yahoo Messenger | Placement Papers| FREE SMS | ASP .Net Tutorial | Web Hosting | Dedicated Servers | C Interview Questions & Answers

    Testing Articles | Testing Books | Testing Certifications | Testing FAQs | Testing Downloads | Testing Interview Questions | Testing Jobs | Testing Training Institutes


    Cache = 0 Seconds