Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-Wall -Wextra -Wpedantic -Wshadow
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct{
- char a;
- int b;
- }TestStruct;
- void TestF1( TestStruct s )
- {
- printf(" (F1) %c %d\n", s.a, s.b );
- }
- void TestF2( TestStruct *p_s )
- {
- printf(" (F2) %c %d\n", p_s->a, p_s->b );
- }
- void TestF3( TestStruct *p_s )
- {
- TestStruct s = *p_s;
- printf("(F3a) %c %d\n", s.a, s.b );
- s.a = 'd';
- s.b = 231;
- printf("(F3b) %c %d\n", s.a, s.b );
- }
- void TestF4( TestStruct *p_s )
- {
- p_s->a = 'b';
- p_s->b = 321;
- }
- void TestV( char *p_a, int *p_i )
- {
- *p_a = 'c';
- *p_i = 312;
- }
- int main()
- {
- TestStruct tsts;
- tsts.a = 'a';
- tsts.b = 123;
- printf(" (1) %c %d\n", tsts.a, tsts.b );
- TestStruct *p_ts;
- p_ts = &tsts;
- printf(" (2) %c %d\n", p_ts->a, p_ts->b );
- TestF1(tsts);
- TestF1(*p_ts);
- TestF2(&tsts);
- TestF2(p_ts);
- TestF3(&tsts);
- TestF3(p_ts);
- printf(" (3) %c %d\n", tsts.a, tsts.b );
- printf(" (4) %c %d\n", p_ts->a, p_ts->b );
- TestF4( &tsts );
- printf(" (5) %c %d\n", tsts.a, tsts.b );
- printf(" (6) %c %d\n", p_ts->a, p_ts->b );
- tsts.a = 'c';
- tsts.b = 132;
- printf(" (7) %c %d\n", tsts.a, tsts.b );
- printf(" (8) %c %d\n", p_ts->a, p_ts->b );
- TestF4( p_ts );
- printf(" (9) %c %d\n", tsts.a, tsts.b );
- printf(" (10) %c %d\n", p_ts->a, p_ts->b );
- char c = 'a';
- int i = 1;
- printf (" (11) %c %d\n", c, i);
- TestV(&c,&i);
- printf (" (12) %c %d\n", c, i);
- return 0;
- }
- /*
- output:
- (1) a 123
- (2) a 123
- (F1) a 123
- (F1) a 123
- (F2) a 123
- (F2) a 123
- (F3a) a 123
- (F3b) d 231
- (F3a) a 123
- (F3b) d 231
- (3) a 123
- (4) a 123
- (5) b 321
- (6) b 321
- (7) c 132
- (8) c 132
- (9) b 321
- (10) b 321
- (11) a 1
- (12) c 312
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement