코드에서PostgreSQLC99 표준에서 스포츠 토토 가능한 언어 기능에만 의존해야합니다. 즉, 적어도 몇 개의 플랫폼 의존적 조각을 제외하고는 C99 컴파일러가 Postgr을 컴파일 할 수 있어야합니다.
C99 표준에 포함 된 몇 가지 기능은 현재 핵심에서 스포츠 토토될 수 없습니다PostgreSQL코드. 여기에는 현재 가변 길이 배열, 혼합 선언 및 코드가 포함되어 있습니다.//
댓글, 보편적 인 캐릭터 이름. 휴대 성과 역사적 관행을 포함하는 이유.
폴백이 제공되는 경우 C 표준 또는 컴파일러 특정 기능의 후후 개정에서 얻은 기능.
예를 들어_static_assert ()
and__builtin_constant_p
현재 C 표준 및 A의 새로운 개정에서 나온 경우에도 현재 사용되고 있습니다.GCC각각 확장. 스포츠 토토할 수없는 경우 각각 동일한 수표를 수행하는 C99 호환 교체를 스포츠 토토하는 것으로 되돌아 가지만 다소 비밀 메시지를 방출하고 스포츠 토토하지 않습니다__builtin_constant_p
.
인수가있는 매크로와정적 인라인
함수를 사용할 수 있습니다. 후자는 매크로로 작성 될 때 다중 평가 위험이있는 경우, 예를 들어와 같이 선호됩니다.
#define max (x, y) ((x) (y)? (x) : (y))
또는 매크로가 매우 길어질 때. 다른 경우에는 매크로를 사용하거나 최소한 더 쉽습니다. 예를 들어 다양한 유형의 표현을 매크로로 전달해야하기 때문입니다.
인라인 함수의 정의가 백엔드의 일부로 만 사용할 수있는 기호 (즉, 변수, 함수)를 참조하면 프론트 엔드 코드에서 포함 될 때 기능이 표시되지 않을 수 있습니다..
#ifndef 프론트 엔드 정적 인라인 memoryContext MemoryContexTswitchto (MemoryContext Context) MemoryContext Old = currentMemoryContext; currentMemoryContext = 컨텍스트; 옛날 복귀;
이 예에서currentMemoryContext
10838_10932#ifndef frontend
. 이 스포츠 토토은 일부 컴파일러가 함수가 사용되지 않더라도 인라인 함수에 포함 된 기호에 대한 참조를 방출하기 때문에 존재합니다.
신호 핸들러 안에서 실행하기에 적합하려면 매우 신중하게 작성해야합니다. 근본적인 문제는 차단되지 않으면 신호 처리기가 언제든지 코드를 방해 할 수 있다는 것입니다. 신호 핸들러 내부의 코드가 혼돈 외부의 코드와 동일한 상태를 사용하는 경우. 예를 들어, 신호 핸들러가 인터럽트 코드에 이미 보유 된 잠금 장치를 얻으려고하는 경우 어떻게되는지 고려하십시오.
신호 핸들러의 특수 배열 코드 제외 코드는 ASYNC-SIGNAL SAFE 기능 (POSIX에 정의 된대로) 및 유형의 액세스 변수 만 호출 할 수 있습니다휘발성 sig_atomic_t
. 의 몇 가지 기능Postgres
또한 신호가 안전하다고 간주됩니다.setLatch ()
.
대부분의 경우 신호 핸들러는 신호가 도착했다는 점에 주목하고 래치를 스포츠 토토하여 핸들러 외부에서 실행되는 코드를 깨우는 것 이상을 수행해야합니다. 그러한 핸들러의 예는 다음과 같습니다.
정적 무효 handle_sighup (Signal_args) int save_errno = errno; got_sighup = true; setlatch (mylatch); errno = save_errno;
errno
이 저장되고 복원되었습니다setLatch ()
변경할 수 있습니다. 그것이 완료되지 않은 경우 현재 검사중인 방해 된 코드errno
잘못된 값을 볼 수 있습니다.
명확성을 위해, 포인터가 간단한 변수 인 경우 뾰족한 기능을 호출 할 때 함수 포인터를 명시 적으로 피하는 것이 선호됩니다.
(*emit_log_hook) (edata);
(비록emit_log_hook (edata)
작동합니다). 기능 포인터가 구조의 일부인 경우, 추가 문장 부호는 예를 들어 다음과 같이 생략 할 수 있고 일반적으로 생략해야합니다.
paraminfo- paramfetch (paraminfo, paramid);
문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 스포츠 토토이 양식문서 문제를보고하려면