Tenyleg ennyire problemas a szovegertes ? :) Nem az a problemam, h beszol a compiler, h konstanst adok vissza egy pointernel es ezert warningol, amiben igaza is van (mellesleg ha lekasztolom void *-ra, akkor meg warning sincs), hanem h utana kurta el a tortenetet. Gondolom az is megvolt, h szandekosan -O0-lal forditottam.
Csak a kedvedert:
aeryn:asd pontscho$ cat main.c
void *basz(void)
{
return 1;
}
aeryn:asd pontscho$ gcc -c -o main.o main.c -O0 -Wall
main.c: In function 'basz':
main.c:4: warning: return makes pointer from integer without a cast
aeryn:asd pontscho$ otool -tv main.o
main.o:
(__TEXT,__text) section
_basz:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 movq $0x0000000000000001,%rax
000000000000000e movq %rax,0xf0(%rbp)
0000000000000012 movq 0xf0(%rbp),%rax
0000000000000016 movq %rax,0xf8(%rbp)
000000000000001a movq 0xf8(%rbp),%rax
000000000000001e popq %rbp
000000000000001f ret
aeryn:asd pontscho$
---
aeryn:asd pontscho$ cat main.c
void *basz(void)
{
return (void *)1;
}
aeryn:asd pontscho$ gcc -c -o main.o main.c -O0 -Wall
aeryn:asd pontscho$ otool -tv main.o
main.o:
(__TEXT,__text) section
_basz:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 movq $0x0000000000000001,%rax
000000000000000e movq %rax,0xf0(%rbp)
0000000000000012 movq 0xf0(%rbp),%rax
0000000000000016 movq %rax,0xf8(%rbp)
000000000000001a movq 0xf8(%rbp),%rax
000000000000001e popq %rbp
000000000000001f ret
aeryn:asd pontscho$
---
aeryn:asd pontscho$ cat main.c
#include <stdlib.h>
void *basz(void)
{
return malloc(1);
}
aeryn:asd pontscho$ gcc -c -o main.o main.c -O0 -Wall
aeryn:asd pontscho$ otool -tv main.o
main.o:
(__TEXT,__text) section
_basz:
0000000000000000 pushq %rbp
0000000000000001 movq %rsp,%rbp
0000000000000004 subq $0x10,%rsp
0000000000000008 movq $0x0000000000000001,%rax
0000000000000012 movq %rax,%rdi
0000000000000015 callq 0x0000001a
000000000000001a movq %rax,0xf0(%rbp)
000000000000001e movq 0xf0(%rbp),%rax
0000000000000022 movq %rax,0xf8(%rbp)
0000000000000026 movq 0xf8(%rbp),%rax
000000000000002a addq $0x10,%rsp
000000000000002e popq %rbp
000000000000002f ret
aeryn:asd pontscho$
Capisce? Szoval hagyjuk mar ezt a faszsagot es kezdjunk mar el gondolkodni is vegre.
---
pontscho / fresh!mindworkz