C 34

C89 표준과 함께 M_PI 사용

C89 표준과 함께 M_PI 사용 저는 C를 사용하고 있고 상수 M_PI(3.14159...)에 접근하려고 합니다.math.h 헤더 파일을 가져왔지만 M_PI 상수가 정의되지 않았습니다.StackOverflow에 대한 검색을 통해 추가해야 할 사항을 발견했습니다.#define _USE_MATH_DEFINES제 코드(아래 코드 예시 참조)이것은 정상적으로 컴파일할 때는 잘 작동하지만, 나는 그것으로 컴파일 할 수 있어야 합니다.std=c89제가 하고 있는 일에 깃발을 꽂습니다. C89 코드에서 M_PI에 액세스하려면 어떻게 해야 합니까?적합한 표준 라이브러리 파일math.h에 필요하지 않을 뿐만 아니라 실제로 정의해서는 안 됩니다.M_PI기본적으로이러한 맥락에서 '기본적으로'는 다음을 의미합니다.M_PI컴..

programing 2023.09.21

말로크는 C에서 얼마나 클 수 있습니까?

말로크는 C에서 얼마나 클 수 있습니까? C에 26901^2*사이즈(더블)의 malloc이 있습니다. 여기서 가장 큰 가치가 무엇인지 생각하게 만들었죠. 또한 이 2D 배열에 액세스하기 위해 매크로를 정의하는 데 문제가 없습니까? #define DN(i,j) ((int)i * ny + (int)j) 왜냐하면 이것은 저에게 효과가 없는 것 같기 때문입니다. 아니면 최소한 확실하지 않습니다.A[DN(indx,jndx)]이 실제로 보고 있는 것을 알려주기 위해 매크로에서 전체 보기를 다이브하는 방법을 알 수 없습니다.관측치 one glibc가 사용하는 것과 같은 일반적인 할당자를 가정하면 다음과 같은 몇 가지 관측 결과가 있습니다. 메모리가 실제로 사용되는지 여부에 관계없이 해당 영역은 가상 메모리에 연속적으..

programing 2023.09.21

프로그램 수신 신호 SIGTRAP, 추적/중단점 트랩

프로그램 수신 신호 SIGTRAP, 추적/중단점 트랩 저는 소프트웨어의 디버깅을 하고 있습니다.함수에 중단점을 설정했는데, 어떤 이유에서인지, 그 중단점에 도달하면continue나는 항상 함수(한 번만 호출해야 하는 초기화 함수)로 돌아갑니다.브레이크 포인트를 제거할 때, 그리고continue, GDB는 다음과 같이 말합니다. Program received signal SIGTRAP, Trace/breakpoint trap. 브레이크포인트 작업을 하다보니 '브레이크포인트 트랩'에 빠졌다고 생각합니다.브레이크포인트 트랩이란 무엇입니까?제가 생각할 수 있는 다른 가능성은 다음과 같습니다. 1.프로세스에서 두 개 이상의 스레드를 실행하고 있습니다. 예를 들어 - 2는 x & y라고 말합니다. 2. 스레드가 중..

programing 2023.09.16

realoc() 전에 malloc()이 필요합니까?

realoc() 전에 malloc()이 필요합니까? 포인터가 정적이거나 글로벌이거나 자동인 경우 NULL로 명시적으로 설정된 경우 realoc이 malloc으로 작동한다는 것을 읽었기 때문에 포인터가 0인 경우 malloc()을 사용하지 않고 사용하고 있었습니다. 하지만 많은 프로그래머들이 malloc(1)로 설정하거나 설정하려고 시도하는 것을 알 수 있습니다.필요하신가요?오픈 그룹의 사양에서: ptr이 null 포인터인 경우 realoc()은 지정된 크기에 대해 malloc()와 같아야 합니다. ptr이 calloc(), malloc() 또는 realoc()에 의해 이전에 반환된 포인터와 일치하지 않거나 free() 또는 realoc()에 대한 호출로 공간이 이전에 할당 해제된 경우 동작이 정의되지 않..

programing 2023.09.11

C/C++ stdlib 명명 규칙의 이름은?

C/C++ stdlib 명명 규칙의 이름은? C/C++ 표준 라이브러리에서 사용되는 명명 규칙에 이름이 있는지 아니면 적어도 규칙을 조회할 수 있는 치트시트가 있는지 궁금합니다.예. push_back -- underscore used setstate -- but not used here! string::npos -- when to use abbreviations? fprintf ... C/C++ 표준 라이브러리에서 사용되는 명명 규칙에 특정한 이름이 있습니까?C/C++는 유명한 메이크업 그대로의 네이밍 규칙을 사용합니다.일반적으로 C/C++ 표준 라이브러리 명명 규칙에 대해 일관되게 말할 수 있는 유일한 것은 C++ STL 템플릿 유형 이름을 제외하고는 camel case를 사용하지 않고 소문자 클래스 ..

programing 2023.09.11

원시 소켓을 특정 인터페이스에 바인딩하는 방법

원시 소켓을 특정 인터페이스에 바인딩하는 방법 제 애플리케이션은 CentOS 5.5에서 실행되고 있습니다.원시 소켓을 사용하여 데이터를 보내고 있습니다. sd = socket(AF_INET, SOCK_RAW, IPPROTO_RAW); if (sd < 0) { // Error } const int opt_on = 1; rc = setsockopt(m_SocketDescriptor, IPPROTO_IP, IP_HDRINCL, &opt_on, sizeof(opt_on)); if (rc < 0) { close(sd); // Error } struct sockaddr_in sin; memset(&sin, 0, sizeof(sin)); sin.sin_family = AF_INET; sin.sin_addr.s_add..

programing 2023.09.11

C 프로그래밍 언어에서 선언 시 2D 배열 초기화

C 프로그래밍 언어에서 선언 시 2D 배열 초기화 선언할 때 0으로 2D 배열을 초기화하려면 어떻게 해야 합니까? double myArray[3][12] = ?double myArray[3][12] = {0}; 또는 gcc 경고 "이니셜라이저 주변에 브레이스를 설치합니다."(경고가 다음과 같이 표시됨)-Wall또는, 보다 구체적으로.-Wmissing-braces) double myArray[3][12] = {{0}}; 0으로 초기화하려면 다음을 수행합니다. double myArray[3][12] = { 0 }; 실제 값을 입력하려면 가새를 중첩할 수 있습니다. double myArray[3][3] = { { 0.1, 0.2, 0.3 }, { 1.1, 1.2, 1.3 }, { 2.1, 2.2, 2.3 } ..

programing 2023.09.01

C의 구조체 멤버에 대한 기본값

C의 구조체 멤버에 대한 기본값 일부 구조체 멤버에 대한 기본값을 설정할 수 있습니까?다음을 시도했지만 구문 오류가 발생할 수 있습니다. typedef struct { int flag = 3; } MyStruct; 오류: $ gcc -o testIt test.c test.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token test.c: In function ‘main’: test.c:17: error: ‘struct ’ has no member named ‘flag’ 구조가 데이터 형식입니다.데이터 유형에 값을 지정하지 않습니다.데이터 유형의 인스턴스/개체에 값을 지정합니다. 그래서 C에서는 이것이 불가능합니다. 대신 구..

programing 2023.08.27

C 프로그래밍의 고정점 연산

C 프로그래밍의 고정점 연산 저는 주가를 고정밀로 저장하는 앱을 만들려고 합니다.현재 저는 그렇게 하기 위해 더블을 사용하고 있습니다.메모리를 절약하기 위해 다른 데이터 유형을 사용할 수 있습니까?이것이 고정 소수점 연산과 관련이 있다는 것을 알지만, 저는 그것을 알아낼 수 없습니다.고정점 산술의 개념은 값에 일정량을 곱한 값을 저장하고, 모든 미적분에 곱한 값을 사용하고, 결과를 원할 때 같은 양으로 나눈다는 것입니다.이 기법의 목적은 분수를 나타낼 수 있는 동안 정수 산술(int, long...)을 사용하는 것입니다. C에서 이를 수행하는 일반적이고 가장 효율적인 방법은 비트 이동 연산자(>)를 사용하는 것입니다.비트 이동은 ALU에 매우 간단하고 빠른 작업이며, 이 작업은 각 시프트에서 정..

programing 2023.08.22

c에서 함수에 대한 인수로 수신된 정수 배열의 크기 찾기

c에서 함수에 대한 인수로 수신된 정수 배열의 크기 찾기 이 질문에는 이미 다음과 같은 답이 있습니다. 전달된 배열의 C 크기 (7개 답변) 마감됨8년 전에. 함수에 인수로 전달된 정수 배열의 크기를 찾고 싶습니다.여기 제 코드가 있습니다. void getArraySize(int arr[]){ int len = (sizeof(arr)/sizeof(arr[0]) printf("Array Length:%d\n",len); } int main(){ int array[] = {1,2,3,4,5}; getArraySize(array); return 0; } 다음 경고가 표시됩니다. sizeof on array function parameter will return size of 'int *' instead of ..

programing 2023.07.23