C 61

printf()가 플로트를 더블로 승격시키는 이유는 무엇입니까?

printf()가 플로트를 더블로 승격시키는 이유는 무엇입니까? 이전 질문에서: 통과를 시도하는 경우float로.printf로 승격됩니다.double전에printf받음 printf()변수 함수가 올바른가요?따라서 변수 함수는 다음을 촉진합니다.float의 주장.double통과하기 전에?예, 변수 함수에 대한 float 인수는 이중으로 승격됩니다. 초안 C99 표준 섹션6.5.2.2함수 호출은 다음과 같습니다. [...]및 유형 플로트가 있는 인수는 이중으로 승격됩니다.이를 기본 인수 승격이라고 합니다. [...] 초안 C++ 표준 섹션에서5.2.2함수 호출: [...]부동점 승격(4.6)의 대상이 되는 부동점 유형, 인수 값이 호출 전에 승격된 유형으로 변환됩니다. [...] 및 섹션4.6: 유형 부동의..

programing 2023.08.23

C에서 "개인/제한된" 기능을 구현하는 방법은 무엇입니까?

C에서 "개인/제한된" 기능을 구현하는 방법은 무엇입니까? 저는 C 인터뷰에서 매우 흥미로운 질문을 받았습니다.특정 g() 함수에서만 호출할 수 있는 방식으로 함수 f()를 구현하려면 어떻게 해야 합니까?g() 이외의 함수가 f()를 호출하려고 하면 컴파일러 오류가 발생합니다. 처음에는 함수 포인터로 이것을 수행할 수 있고 런타임에 통화를 차단할 수 있다고 생각했습니다.하지만 저는 컴파일 타임 전략을 생각할 수 없었습니다.저는 이것이 ansi C를 사용하여 가능한지 조차 모릅니다. 아무도 몰라요?한 가지 방법이 있습니다. int f_real_name(void) { ... } #define f f_real_name int g(void) { // call f() } #undef f // calling f()..

programing 2023.08.13

간단한 Bittorrent 애플리케이션을 작성하는 방법은 무엇입니까?

간단한 Bittorrent 애플리케이션을 작성하는 방법은 무엇입니까? 간단한 비트토렌트 애플리케이션 작성 방법비트토렌트 라이브러리를 사용하는 "헬로 월드"와 같은 것은 비트토렌트의 작동을 이해하는 가장 간단한 응용 프로그램을 의미합니다.저는 파이썬이나 C/C++ 구현을 선호하지만, 어떤 언어든 될 수 있습니다.플랫폼도 문제가 되지 않지만, 저는 리눅스가 더 선호합니다. 도서관이 따라야 할 권장 사항, 저는 http://sourceforge.net/projects/bittorrent/develop 에서 하나의 소스 코드(공식 비트토렌트라고 생각합니다)를 다운로드했습니다.하지만 http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients#Libraries 에..

programing 2023.08.08

범위를 벗어난 문자* 참조

범위를 벗어난 문자* 참조 얼마 전에 C++로 프로그래밍하다가 최근에 다시 C에서 프로그래밍을 시작했는데, 포인터에 대한 이해가 좀 서툴러요. 이 코드로 인해 오류가 발생하지 않는 이유를 묻고 싶습니다. char* a = NULL; { char* b = "stackoverflow"; a = b; } puts(a); 제가 생각한 이유는b벗어났습니다.a하지 않는 위치를 , 위치는 존하지않메위참치하조야므됩을 호출할 때 .printf. 저는 이 코드를 MSVC에서 20번 정도 실행했는데 오류가 나타나지 않았습니다.【例내】가 있는 범위 b는 정의되며, 문자열 리터럴의 주소가 할당됩니다.이러한 리터럴은 일반적으로 스택이 아닌 메모리의 읽기 전용 섹션에서 사용됩니다. 을 할 때는.a=b값을 할당합니다.ba를 들어, ..

programing 2023.08.08

C를 위한 좋은 플롯 라이브러리?

C를 위한 좋은 플롯 라이브러리? 현재 상태로는 이 질문은 우리의 Q&A 형식에 적합하지 않습니다.우리는 답변이 사실, 참고 자료 또는 전문 지식에 의해 뒷받침되기를 기대하지만, 이 질문은 토론, 논쟁, 여론 조사 또는 연장된 토론을 요청할 가능성이 높습니다.만약 이 질문이 개선될 수 있고 다시 열릴 수 있다고 느낀다면,안내를 위해 헬프 센터를 방문합니다. 마감됨10년 전에. 제 질문은 정신적으로 이 질문과 매우 유사합니다.파이썬을 위한 최고의 플로팅 라이브러리는 무엇입니까? C에서 데이터를 플롯하는 가장 좋은 방법은 무엇입니까?라이브러리를 포기하고 gnuplot에 직접 입력할 수 있는 데이터를 생성하는 것이 더 나을까요? 이 질문에 대한 저의 추진력은 이전 질문에서 발견된 우수한 리소스를 연구하면서 D..

programing 2023.07.29

VM 구현을 위한 자습서/리소스

VM 구현을 위한 자습서/리소스 저는 C에서보다는 동적 언어를 위한 간단한 가상 머신을 자체 교육 목적으로 구현하기를 원합니다.Lua VM, Parot, Python VM과 같은 것이지만 더 단순합니다.기존 VM의 코드 및 설계 설명서를 보는 것 외에 이를 달성하는 데 유용한 리소스/자습서가 있습니까? 편집: 왜 근소한 차이로 투표합니까?저는 이해가 안 됩니다 - 이것은 프로그래밍이 아닙니다.제 질문에 구체적인 문제가 있다면 코멘트 부탁드립니다.단순한 통역보다는 가상 머신을 원하는 것 같습니다.저는 그것들이 연속체의 두 점이라고 생각합니다.통역사는 프로그램의 원래 표현에 가까운 것을 작업합니다.VM은 보다 기본적인(및 자체 포함) 지침에서 작동합니다.이것은 하나를 다른 하나로 번역하기 위한 컴파일 단계가..

programing 2023.07.09

2차원 어레이 대 1차원 어레이의 성능

2차원 어레이 대 1차원 어레이의 성능 C에서, m×n 2차원 배열과 길이 m×n의 1차원 배열 사이에 시간과 공간의 차이가 있습니까? (m과 n의 큰 값의 경우)1차원 배열로 요소에 액세스하는 것이 더 빠를까요?C에서 2차원 배열은 1차원 배열을 위한 깔끔한 색인 체계일 뿐입니다.메모리의 하고, 1D 어레이는 2D 어레이와 마찬가지로,A[row][col]표기법은 말하는 것과 비슷합니다.A[row*NCOLS+col]. 일반적으로 단일 차원 배열을 사용하여 자체 다차원 배열을 구현하는 경우 인덱싱 기능을 작성합니다. int getIndex(int row, int col) { return row*NCOLS+col; } 컴파일러가 이 함수를 인라인화한다고 가정하면, 여기서의 성능은 2D 어레이의 내장된 '인덱..

programing 2023.07.09

C에서 사용 가능한 스택 크기 확인 중

C에서 사용 가능한 스택 크기 확인 중 저는 GCC 3.4.5 (mingw-special vista3)에서 MinGW를 사용하고 있습니다. 제 C 애플리케이션은 스택을 많이 사용하기 때문에 스택이 얼마나 남아 있는지 프로그래밍으로 알 수 있는 방법이 없을까요? 그렇지 않다면 잠재적으로 스택 공간이 부족해지는 문제를 해결할 수 있는 다른 방법은 무엇입니까? 어떤 크기의 스택으로 시작할지 모르기 때문에 프로그래밍 방식으로도 식별해야 합니다.getrusage 함수는 현재 사용량을 제공합니다( 참조). 그getrlimit 데 될 수 있습니다.RLIMIT_STACK매개 변수 #include int main (void) { struct rlimit limit; getrlimit (RLIMIT_STACK, &limi..

programing 2023.07.04

printf를 사용하여 0 뒤에 오는 경우 소수점 이하의 자리 없이 부동 소수점 이하의 형식 지정

printf를 사용하여 0 뒤에 오는 경우 소수점 이하의 자리 없이 부동 소수점 이하의 형식 지정 printf를 사용하여 0과 다를 경우 소수점 이하 2자리까지만 표시되도록 C에서 플로트를 포맷할 수 있습니까? 예: 12 => 12 12.1 => 12.1 12.12 => 12.12 다음을 사용해 보았습니다. float f = 12; printf("%.2f", f) 하지만 이해합니다. 12 => 12.00 12.1 => 12.10 12.12 => 12.12사용할 수 있습니다.%g형식 지정자: #include int main() { float f1 = 12; float f2 = 12.1; float f3 = 12.12; float f4 = 12.1234; printf("%g\n", f1); printf("%..

programing 2023.07.04

xxxxxx.exe는 올바른 Win32 응용 프로그램이 아닙니다.

xxxxxx.exe는 올바른 Win32 응용 프로그램이 아닙니다. Visual Studio 2012 RC에 작은 C/C++ 프로젝트가 있습니다. 이 응용 프로그램은 argv를 구문 분석한 다음 다른 .exe 파일을 호출합니다.ShellExecute Windows 7(윈도우 7)에서는 응용 프로그램이 완벽하게 작동하지만 Windows XP(윈도우 XP) x86에서는 올바른 Win32 응용 프로그램 오류가 아닙니다. 멀티스레드(/MT) 및 Win32 플랫폼으로 컴파일했습니다. 이것은 나의 # 포함입니다. #include #include #include #include #include #include #include #include #include #include #include 감사해요.2013년 2월에 다..

programing 2023.07.04