can any one tell that i have a variable which is declared
as static but i want this variable to be visible to the
other files? how?
Answer Posted / vadivelt
It is not possible to directly access the static variable
of one file from another file. But we can access is it
in different way(by accessing the location).
Lets have a file1.c with following code:
static int a;
int *ptr = &a;/*ptr in Global scope, so by default its
storage class is extern*/
void func(void)
{
a = 30;
}
Here 'a' is static variable and it cannot be directly
accessed from another file. So create a pointer of same
data type (*ptr) and assign the address of the variable to
the pointer. Now whenever the variable value is changed in
file1.c, it will be updated in the location of 'a' and
pointer holds that location.
Now Lets have a second file with name main.c with the foll
code
#include<stdio.h>
#include<conio.h>
main()
{
extern int *ptr;
printf("%d\n", *ptr);
func();
printf("%d", *ptr);
getch();
}
Since *ptr is a extern variable and it holds the address of
a, whenever the value of the variable is changed in
file1.c, it will reflect in main.c also.
Here, when 1st printf() is executed, 'a' value would be 0.
Cos it is a static and defualt initial value is 0.
before 2nd printf() is encountered, 'a' value is changed to
30 in file1.c using func();
since we are accessing address of the variable using ptr
,the same value will reflect in main.c also.
In the same way if u want to change the value of static
variable in main.c
Just use *ptr = somevalue; it will reflect in variable 'a' in
file1.c
| Is This Answer Correct ? | 3 Yes | 0 No |
Post New Answer View All Answers
What is the heap?
Explain the use of keyword 'register' with respect to variables.
Here is a good puzzle: how do you write a program which produces its own source code as output?
I was asked to write a program in c which when executed displays how many no.of clients are connected to the server.
we need to calculating INCOME TAX for the person. The INCOME TAX is as follows:- First $10000/- of income : 4% tax Next $10000/- of income : 8% tax Next $10000/- of income : 11.5% tax above $10, 00,00/- : 15% tax What is the Solution of this Question ?
why we wont use '&' sing in aceesing the string using scanf
What is a macro, and explain how do you use it?
i have to apply for the rbi for the post of officers. i need to know abt the entrance questions whether it may be aps or techinical....
What is the significance of scope resolution operator?
develop a breakfast order booking system using Functions, Structures and Arrays. The system is to support the operations shown to the user in the following system’s menu: Welcome to Asim's Restaurant Select an operation? 1 Make a breakfast order 2 Modify existing order 3 Cancel existing order 4 Print Bill 5 Exit Type in your selection (1, 2, 3, 4 or 5): The program will include an array of structures. The structure type is called MenuItem, and the array of structures should be declared as menu[50] to store upto 50 breakfast menu items. The MenuItem structure must have the following 4 data fields (i.e. members): Code, description, unitprice, and quantity. Your program must define at least the following functions: Function LoadData(…) that loads the data of breakfast menu items from an input file menu.txt into the array menu. Five separate functions to handle the program main menu five tasks shown above. In general, function main() should load the data into the array menu and display the main menu of the above mentioned tasks. Based on the option selected, the corresponding function should be called. Users must make an order before requesting modify, cancel or print order bill (See the given sample run). Here is a more detailed explanation on the above tasks and functions. LoadData(…) Opens the input file menu.txt (you will create it) containing breakfast menu items data (See below) and assign these values to the corresponding array menu structure fields. Assign zero to the quantity field of the loaded menu items. Welcome to Asim's Restaurant Select an operation? 1 Make a breakfast order 2 Modify existing order 3 Cancel existing order 4 Print Bill 5 Exit Type in your selection (1, 2, 3, 4 or 5): MakeOrder(…) This function is called when the user selects option 1 from the main menu. It first displays the breakfast menu items to the user (stored in the array menu) along with all the necessary information (item code, description and unit price). It then requests the user to select an item using the item code (see the sample run). When the user enters an item code number the program should verify the code number and increment the quantity of the selected item in the array menu. Your program should reject invalid item codes and request the user to re-enter the item code or stop the entry. PrintBill(…) This function is called when the user selects option 4 from the main menu. The function displays the breakfast menu items in the breakfast order by printing the values of all MenuItem members of the array menu that have quantity value above zero. Print a nicely formatted bill (See the sample run). CancelOrder(…) This function is called when the user selects option 3 from the main menu. It will cancel the breakfast order by setting the quantity value of all the array menu structures to zero. ModifyOrder(….) This function is called when the user selects option 2 from the main menu. The task of this function is to allow the user to edit an existing breakfast order with two operations: Adding more breakfast items and/or altering the breakfast item that were ordered before (examine the sample program run). Handling Errors and Invalid Input Your program should reply safely to any erroneous situation or input with appropriate message to the user and flow nicely and correctly to the next operation (Examine the sample program run). Additional functions Use of functions is highly recommended for any additional special tasks needed by your solution. Global variables are not allowed except for max array menu size 50. You must pass the needed parameters through functions parameter lists.
Explain how can I write functions that take a variable number of arguments?
Write a program to display all the prime nos from 1 to 1000000, your code should not take time more than a minute to display all the nos.
c programs are converted into machine language with the help of a) an interpreter b) a compiler c) an operatinf system d) none of the above
What are local static variables?
Write a program to print fibonacci series using recursion?