They're bit-fields, an example being that unsigned int addr:9; creates an addr field 9 bits long.

It's commonly used to pack lots of values into an integral type. In your particular case, it defining the structure of a 32-bit microcode instruction for a (possibly) hypothetical CPU (if you add up all the bit-field lengths, they sum to 32).

The union allows you to load in a single 32-bit value and then access the individual fields with code like (minor problems fixed as well, specifically the declarations of code and test):

#include <stdio.h>

struct microFields {
    unsigned int addr:9;
    unsigned int cond:2;
    unsigned int wr:1;
    unsigned int rd:1;
    unsigned int mar:1;
    unsigned int alu:3;
    unsigned int b:5;
    unsigned int a:5;
    unsigned int c:5;
};

union micro {
    unsigned int microCode;
    struct microFields code;
};

int main (void) {
    int myAlu;
    union micro test;
    test.microCode = 0x0001c000;
    myAlu = test.code.alu;
    printf("%d\n",myAlu);
    return 0;
}

This prints out 7, which is the three bits making up the alu bit-field.

Answer from paxdiablo on Stack Overflow
🌐
C-in
c-in.eu
C-IN | Professional Congress Organiser
At C-IN, we go beyond organizing events.
Team
The ICT team is responsible for ... as all the online services (registration, abstracts, and management forms including privacy and security) and event websites. Onsite, our specialists take care of all the AV set-up, presentation management, and other IT/AV-related ...
Company | C-IN
At the heart of our success lies an exceptional team of event professionals, equipped with the skills to transform your vision into a reality. With a rich background in event management, logistics, and strategic planning, we ensure that every congress we organize exceeds expectations.
🌐
C-IN2
c-in2.com › home
Men’s Underwear by C-IN2 | Briefs, Boxers, Jocks & More
C-IN2 (pronounced “see-into”) makes high-quality men’s underwear, t-shirts, and tanks—engineered for comfort, elevated with fashion-forward style, and built to move. With sculpted fits, breathable fabrics, and confident design, our gear blends performance and polish.
Discussions

syntax - Use of the : operator in C - Stack Overflow
What is the function of the : operator in the code below? #include struct microFields { unsigned int addr:9; unsigned int cond:2; unsigned int wr:1; unsigned int rd:1; un... More on stackoverflow.com
🌐 stackoverflow.com
I still don't understand the difference between "&" and "*" in C.
The problem is that * and & have like, three different meanings (more if you're in C++ land). * in a type name means "this is a pointer to the given type." So an int * is a pointer to an int, and an int ** is a pointer to a pointer to an int. * between two expressions is the multiplication operator. (2 + 3) * (4 + 6) is 50. * at the start of an expression or variable name is the "splat" or derefencing operator. *foo means "follow the pointer foo and see what's contained at the address it points to." So something like this: int foo = 3; int *bar = &foo; printf("%d\n", *bar); prints 3. & in a type name has no meaning in C, but in C++ it declares a reference type, which is like a pointer but with stronger semantics. & between two expressions is the bitwise AND operator. You can think of it as taking two numbers, converting them to binary, ANDing all their bits together, and returning you the resultant value. So something like this: 0b1101 & 0b1010 would return 0b1000 & at the beginning of an expression or variable name is the "pointer-to" operator. Like the name suggests, this will give you back a pointer to the proceeding value. So something like &foo means "give me the address of foo as a pointer." You can see a use of this operator in the last example for *; it's essentially the inverse of "splat." More on reddit.com
🌐 r/learnprogramming
14
17
April 18, 2022
What is the '-->' operator in C/C++? - Stack Overflow
After reading Hidden Features and Dark Corners of C++/STL on comp.lang.c++.moderated, I was completely surprised that the following snippet compiled and worked in both Visual Studio 2008 and G++ 4.... More on stackoverflow.com
🌐 stackoverflow.com
microcontroller - What do the C operators "&=" and "|=" do? - Electrical Engineering Stack Exchange
Bring the best of human thought and AI automation together at your work. Explore Stack Internal ... \$\begingroup\$ I don't believe those operators are any different between micros and other platforms. \$\endgroup\$ ... \$\begingroup\$ For the complete masterclass graphics.stanford.edu/~se... More on electronics.stackexchange.com
🌐 electronics.stackexchange.com
June 2, 2011
🌐
W3Schools
w3schools.com › c › c_operators.php
C Operators
int sum1 = 100 + 50; // 150 (100 + 50) int sum2 = sum1 + 250; // 400 (150 + 250) int sum3 = sum2 + sum2; // 800 (400 + 400) Try it Yourself » · C divides the operators into the following groups:
🌐
Facebook
facebook.com › cin.europe
C-IN | Prague
C-IN, Prague, Czech Republic. 491 likes · 32 talking about this · 72 were here. Meet C-IN! Specialists in conference, association and corporate event management. 🤝
🌐
Wikipedia
en.wikipedia.org › wiki › C_(programming_language)
C (programming language) - Wikipedia
November 10, 2001 - C is an imperative procedural language, supporting structured programming, lexical variable scope, and recursion, with a static type system. It was designed to be compiled to provide low-level access to memory and language constructs that map ...
Find elsewhere
🌐
Reddit
reddit.com › r/learnprogramming › i still don't understand the difference between "&" and "*" in c.
r/learnprogramming on Reddit: I still don't understand the difference between "&" and "*" in C.
April 18, 2022 -

So I know roughly how pointers work. You have a value, say char x, and doing char* x isn't the actual content of the variable but rather the physical address it's located at.

But the thing that really confuses me is where we use "&" versus "*". I know "&" corresponds to the memory location of something, but isn't that what the pointer operator does? Just gives you the memory address of a variable? When exactly do we use "&" and "*"?

Is the pointer operator just for defining pointer "objects" (in a sense) while the ampersand is done as a way of reading a memory address versus operating with it?

Top answer
1 of 5
26
The problem is that * and & have like, three different meanings (more if you're in C++ land). * in a type name means "this is a pointer to the given type." So an int * is a pointer to an int, and an int ** is a pointer to a pointer to an int. * between two expressions is the multiplication operator. (2 + 3) * (4 + 6) is 50. * at the start of an expression or variable name is the "splat" or derefencing operator. *foo means "follow the pointer foo and see what's contained at the address it points to." So something like this: int foo = 3; int *bar = &foo; printf("%d\n", *bar); prints 3. & in a type name has no meaning in C, but in C++ it declares a reference type, which is like a pointer but with stronger semantics. & between two expressions is the bitwise AND operator. You can think of it as taking two numbers, converting them to binary, ANDing all their bits together, and returning you the resultant value. So something like this: 0b1101 & 0b1010 would return 0b1000 & at the beginning of an expression or variable name is the "pointer-to" operator. Like the name suggests, this will give you back a pointer to the proceeding value. So something like &foo means "give me the address of foo as a pointer." You can see a use of this operator in the last example for *; it's essentially the inverse of "splat."
2 of 5
6
& says "give me the address of a thing that exists" "*" says either: "take a thing that's a pointer and treat it like an object (i.e. i = *ptr;" OR "declare a pointer to an object (i.e. int *a = NULL;) Combined example: int x = 7; int *b = &x; *b = 9;
🌐
LinkedIn
linkedin.com › company › c-in
C-IN | LinkedIn
C-IN provides the highest level of services, specializing in event, congress and association management. Our team of 53 people delivers more than 50 events per year and acts as a long term partner for several European associations.
🌐
Wikipedia
en.wikipedia.org › wiki › Operators_in_C_and_C++
Operators in C and C++ - Wikipedia
4 days ago - This is a list of operators in the C and C++ programming languages. All listed operators are in C++ and lacking indication otherwise, in C as well. Some tables include a "In C" column that indicates whether an operator is also in C. Note that C does not support operator overloading.
🌐
Pragueconvention
pragueconvention.cz › news › c-in-concluded-this-years-parliament-events-within-the-czech-presidency-in-the-european-council
C-IN Concluded this Year´s Parliament Events within the Czech Presidency in the European Council – Prague Convention Bureau
Conference of Parliamentary Committees for Union Affairs of Parliaments of the European Union (COSAC) was last Parliament event within the Czech Presidency in the European Council this year. It was brought by C-IN together with the Office of the Chamber of Deputies of the Czech Republic from the 13th till the 15th of November in Prague.
🌐
GeeksforGeeks
geeksforgeeks.org › c language › operators-in-c
Operators in C - GeeksforGeeks
Unary Operators: Operators that work on single operand. Example: Increment( ++ ) , Decrement( -- ) Binary Operators: Operators that work on two operands. Example: Addition ( + ), Subtraction( - ) , Multiplication ( * ) Ternary Operators: Operators ...
Published   November 1, 2025
🌐
Wikipedia
en.wikipedia.org › wiki › In_C
In C - Wikipedia
2 days ago - In C is a composition by Terry Riley from 1964. It is one of the most successful works by an American composer and a seminal example of minimalism. The score directs any number of musicians to repeat a series of 53 melodic fragments in a guided improvisation.
🌐
TutorialsPoint
tutorialspoint.com › cprogramming › c_operators.htm
C - Operators
The most common logical operators are AND (&&), OR(||), and NOT (!). Logical operators are also binary operators. ... We will discuss more about Logical Operators in C in a subsequent chapter.
🌐
Instagram
instagram.com
Instagram
We cannot provide a description for this page right now
🌐
Programiz
programiz.com › c-programming › c-operators
Operators in C
April 27, 2022 - An operator is a symbol that operates on a value or a variable. For example: + is an operator to perform addition. In this tutorial, you will learn about different C operators such as arithmetic, increment, assignment, relational, logical, etc. with the help of examples.