Czy strukturę lepiej przekazywać do funkcji przez wartość, czy przez wskaźnik?
uart_init(struct uart_params p);
uart_init(struct uart_params *p);
Jaki jest rozmiar tej struktury na platformie 32-bitowej?
struct modbus_frame
{
uint8_t slave_id;
uint8_t funcode;
uint16_t addr;
uint16_t cnt;
};
Jaki jest rozmiar tej unii?
union example
{
uint32_t a;
int32_t b;
uint8_t c;
uint8_t d[4];
uint16_t e;
uint16_t f[2];
};
Jakie są wartości poszczególnych pól struktury po takiej inicjalizacji?
struct point
{
int x;
int y;
int z;
};
struct point p = {1};
Jakie są wartości poszczególnych pól struktury po takiej inicjalizacji?
struct point
{
int x;
int y;
int z;
};
struct point p = {.y = 1};
Co ten program wypisze na konsolę?
#include "stdio.h"
#include "stdint.h"
int main(void)
{
int v = 5;
int *ptr = &v;
*ptr++;
printf("%d, %d\n", v, *ptr);
return 0;
}
Co ten program wypisze na konsolę?
#include "stdio.h"
#include "stdint.h"
int main(void)
{
uint32_t *ptr = 0x20000000;
ptr++;
printf("0x%08X\n", ptr);
return 0;
}
Czy kompilacja tego kodu zakończy się sukcesem?
#include "stdint.h"
uint8_t *u8_ptr;
uint32_t *u32_ptr;
_Static_assert(sizeof(u8_ptr) == sizeof(u32_ptr));
int main(void)
{
return 0;
}
Co ten program wypisze na konsolę? Rozmiar wskaźnika na tej architekturze to 32 bity.
#include "stdio.h"
#include "stdint.h"
uint32_t array[10];
void fun(uint32_t *a)
{
printf("%d", sizeof(a));
}
int main(void)
{
printf("%d, ", sizeof(array));
fun(array);
return 0;
}
Jaki będzie wynik tego porównania?
Co ten program wypisze na konsolę?
#include "stdio.h"
#include "stdint.h"
char * str = "Hello world";
int main(void)
{
str[4] = 'a';
printf(str);
return 0;
}
Jakie będą wartości poszczególnych pól tablicy po takiej inicjalizacji?
Dodaj komentarz