비 재귀 함수에서는 대용량 데이터 유형을 스택에 배치해도 괜찮습니까?스택에 큰 물체를 두지 않아야합니까?
손쉬운 장소는 C 기능으로 정리해야합니다.
나는 이와 같은 데이터의 임의의 패킷을 읽고 쓸 수있는 C 함수를 가지고있다.
int do_something()
{
char buf[9000];
struct ot_packet_t p;
pkt_init(&p);
pkt_set_type(&p, "WDAT");
pkt_write_uint32(&p, some_var);
pkt_write_data(&p, some_data, some_len);
// other stuff...
// if need to early exit... buf & p cleaned up. An RAII approach.
send_packet(buf, pkt_get_length(&p));
}
나는이 질문에 C++로 태그를 붙였을뿐만 아니라 C++에도 적용 할 수 있습니다. 최소한 C++에서는 일반적으로 auto_ptr을 사용하여 힙에 할당 된 더 큰 객체를 정리합니다. C에서 나는 이것이 깔끔한 것 같지 않다고 생각하니?
당신이 상상할 수있는 모든 언어에 태그를 지정하지 마십시오. 이 일반적인 질문은 고정 된 크기의 스택을 가진 플랫폼에서 네이티브 어셈블러로 컴파일되는 모든 언어 구현에 적용됩니다. – Puppy