forked from blau_araujo/cblc
49 lines
1.6 KiB
C
49 lines
1.6 KiB
C
// versão do colega Daniel, publicada no Issues
|
|
//
|
|
#include <stdio.h>
|
|
|
|
void print_bytes(char *label, void *addr, size_t size);
|
|
|
|
int main(void) {
|
|
|
|
int num = 100000;
|
|
int sqr_int = num * num;
|
|
unsigned long sqr_long = (unsigned long)num * num;
|
|
//--------------
|
|
print_bytes("---------------> num", &num, sizeof(num));
|
|
printf("Resultado -> %d\n", num);
|
|
|
|
print_bytes("-----------> sqr_int", &sqr_int, sizeof(sqr_int));
|
|
printf("Resultado -> %d\n", sqr_int);
|
|
|
|
print_bytes("----------> sqr_long", &sqr_long, sizeof(sqr_long));
|
|
printf("Resultado -> %lu\n", sqr_long);
|
|
//--------------
|
|
return 0;
|
|
}
|
|
|
|
void print_bytes(char *label, void *addr, size_t size) {
|
|
|
|
unsigned char *bytes = (unsigned char *)addr;
|
|
|
|
//printf("%p - %s - ", bytes, label);
|
|
//printf("%p - %s\n", bytes, label);
|
|
printf("%s - %p\n", label, bytes);
|
|
|
|
// Se a avaliação da expressão 'i > (size -1)' retornar 0 (falso),
|
|
// ela receberá o valor que vem depois dos ':' que é o valor
|
|
// apontado por bytes[i].
|
|
//
|
|
// Se a avaliação da expressão 'i > (size -1)' retornar 1 (verdadeiro).
|
|
// ela receberá o valor que vem depois da '?'
|
|
// == 0 falso
|
|
// != 0 verdadeiro
|
|
|
|
for (size_t i = 0; i < 8; i++) {
|
|
int res = i > (size - 1);
|
|
printf("| Endereço do byte[i]: %p | Retorno de [i]: %d ", &bytes[i], res);
|
|
printf("| Valor no byte: %02x |\n", i > (size - 1) ? 0 : bytes[i]);
|
|
//printf("|>Retorno de [i]: %d : Endereço do Byte[i]: %p<| \n", res, &bytes[i]);
|
|
}
|
|
}
|
|
|