473,609 Members | 1,818 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

value assignment to a structure member inside the structure

1 New Member
Is it possible to assign a value to structure member inside the structure.like. ....
Expand|Select|Wrap|Line Numbers
  1. struct control{
  2.  
  3. char tbi:2 =0;
  4. char res:1 =0;
  5. };
Oct 7 '14 #1
6 1374
donbock
2,426 Recognized Expert Top Contributor
Not like that. The struct command defines a new type. Putting the assignments in the struct command makes it look like you want these to be the initial values of those fields for every variable of this structure type. That sounds like a C++ constructor; but C doesn't have feature like that.
Oct 7 '14 #2
stdq
94 New Member
I just wanted to point that, as far as I know, you can't use the ':' character to name a variable.
Oct 7 '14 #3
Banfa
9,065 Recognized Expert Moderator Expert
@stdq - you'd be wrong because it is not naming a field it is declaring a bit field. Now bit fields are a bit platform dependant and really just syntactic sugar for using bit masks but they can be useful (particularly mapping data in microprocessor peripheral registers).

Effectively the code in the OP declares a field of 2 bits and a field of 1 bit, which will be followed by padding bits to bring the total size up to the number of bits in a char.

See http://en.wikipedia.org/wiki/Bit_field
Oct 7 '14 #4
donbock
2,426 Recognized Expert Top Contributor
In the OP code, the only initial values we see happen to be zero. If there are indeed no nonzero initial values then this effect can be achieved by declaring the structure variables with static duration. Variables with static duration are implicitly initialized to all zero before the first instruction in your program executes.

Static storage duration is any variable defined with the static keyword or any global variable (explicit or implicit extern keyword).
Oct 7 '14 #5
donbock
2,426 Recognized Expert Top Contributor
@Banfa - Standard C requires bit fields be of type unsigned int, signed int, int, or _Bool (C99 only). Notice that whether an int bit field is signed or unsigned is implementation-dependent -- quite different from an int variable, which is always signed.

I'm told that allowing other integer types (including char) for bit fields is a nonstandard extension found in some compilers. Needless to say, nonstandard extensions should be avoided.

Blast from the past: pre-Standard K&R C only supported bit fields of type unsigned.
Oct 7 '14 #6
Banfa
9,065 Recognized Expert Moderator Expert
@donbock you are of course correct on all counts and I probably should have pointed that out myself (I did think about it while I was typing if that counts for anything :D).

It is a relatively common non-standard extension so I assumed that is what was being used in this case (because actually that is the only thing that makes sense given the code).
Oct 8 '14 #7

Sign in to post your reply or Sign up for a free account.

Similar topics

2
2778
by: B. Wood | last post by:
I have written a simple program the has a structure with two members. There are two strange things going on. 1. When on of the structure members is tested in a condition, the value of the second member seems to change. 2. The order of the condition test seems to have an effect on if the one structure member changes.
4
4070
by: Aaron Walker | last post by:
I am trying to write this piece of code that reads a config file, in the format: ENTRY value and I want to read the config file, then read the "value" into the appropriate member of the following structure: struct conf_data { char *root;
1
5268
by: Dmitri Vorobiev | last post by:
Hello group, Is it possible to check the presence of a structure member at compile time using only the C preprocessor? What I have in mind could look like the following. Suppose the structures s1 and s2 look like struct s1 {
7
3422
by: Randy Yates | last post by:
Hi, I work in an embedded environment in which we often use a mix of C and assembly code. Thus a recurring requirement is to be able to take a C header file with structure definitions as input and create an assembly include file with the structure member offsets defined. The problem is that the structure offsets are a complicated function of other syntactic elements such as other structures (I could have a structure as a member of...
1
6428
by: Mikko Penkkimäki | last post by:
I have a struct in C#-project and C++-project. I use the struct in C# but it has to be filled in C++. I know that arrays work like this: In C++ code: struct teststruct { char str; float myvar;
0
1038
by: JC Voon | last post by:
Hi All: I have a problem when trying to set the value of the structure member using reflaction,here is the code: Public Const MemberAccess As BindingFlags = BindingFlags.Public Or BindingFlags.NonPublic Or BindingFlags.Static Or BindingFlags.Instance Or BindingFlags.IgnoreCase
7
12365
by: raghunandan_1081 | last post by:
Hi guys, can you please tell me what is the Difference between c structure and c++ structure
2
2935
by: dobest03 | last post by:
Hi. Are there any way to access the integer member 'a' of outer structure from inner structure's member function func_inner()? See below the structure... Thanks. struct outer {
4
2558
by: sandeep | last post by:
Hi why we cannot have static as a structure member? & also is there any way to achive data hiding in C at this level( i.e. access only selected structure member ) following code gives syntax error struct xxxx { static int i; // int j; };
9
5425
by: cman | last post by:
What are the mechanics involved in the calculation of an offset of a structure member, demonstrated in this piece of code? #define list_entry(ptr, type, member) \ ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) Suppose you have struct foobar and want to compute the offset of element boo, this is how it is done: (unsigned long)(&((struct foobar *)0)->boo)
0
8083
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8573
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8547
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
8224
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8406
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
5517
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
4026
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
2535
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1676
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.