반응형

C 43

hashCode()와 getClass()가 네이티브 메서드인 이유는 무엇입니까?

hashCode()와 getClass()가 네이티브 메서드인 이유는 무엇입니까? 소스 코드를 확인했습니다.Object내가 그 방법 선언을 찾은 클래스.getClass()이었다 public final native Class getClass(); 그리고 선언문은hashCode()이었다 public native int hashCode(); 왜 이 두 가지 방법이native클래스의 메서드와 해당 메서드의 소스 코드를 어떻게 얻을 수 있습니까?네이티브 메소드의 전체 소스 코드는 여기에서 찾을 수 있습니다. 이것이 당신에게 효과가 있기를 바랍니다. 이것들은 기계와 상호작용해야 하기 때문에 기본적인 방법입니다.여기서 기계 종속 코드는 소스 패키지와 함께 제공되지 않는 C 언어로 작성됩니다.rt.jar의libJava ..

programing 2023.08.16

구조물에 빈 포인터 캐스팅

구조물에 빈 포인터 캐스팅 저는 C에 대해 편안함을 느끼기 시작했고, 그 후 타이프 캐스팅에 부딪혔습니다.*.h 파일에 다음이 정의되어 있는 경우 struct data { int value; char *label; }; 그리고 이것은 다른 *.h 파일에 있습니다. # define TYPE void* 함수로 전달된 변수 "TYPE 밸브"를 사용할 수 있도록 구조체에 보이드 포인터를 캐스팅하려면 어떻게 해야 합니까?예를 들어, TYPE val이 가리키는 값을 사용하려면 어떻게 캐스트해야 다른 함수에 해당 값을 전달할 수 있습니까?(struct data*)pointer 의 포인터를 무효화하기 위해 포인터를 던집니다.struct data.구조물에 대한 빈 공간 포인터를 타이핑하는 작업은 다음과 같이 수행할 수 ..

programing 2023.08.16

C/C++ 구조물 간격띄우기

C/C++ 구조물 간격띄우기 구조의 인스턴스를 할당하지 않고 구조 내 필드의 오프셋을 알려줄 수 있는 코드를 찾고 있습니다. IE: 지정됨 struct mstct { int myfield; int myfield2; }; 나는 쓸 수 있습니다: mstct thing; printf("offset %lu\n", (unsigned long)(&thing.myfield2 - &thing)); 그리고 getoffset 4생산을 위하여.그것 없이 어떻게 할 수 있습니까?mstct thing선언/할당? 나는 그것을 알고 있습니다.&항상 구조의 첫 번째 필드의 첫 번째 바이트를 가리키는 것은 아니므로 나중에 설명할 수 있습니다.() 매크로의 표준 오프셋(instddef.h)은 어떻습니까? 편집: 어떤 이유로 () 매크로..

programing 2023.08.16

순환 유형 종속성을 해결하시겠습니까?

순환 유형 종속성을 해결하시겠습니까? 이러한 구조물을 정의할 때 다음 순환 의존성을 해결하는 가장 좋은 방법은 무엇입니까? C 언어 태그를 메모합니다. 표준 gcc C에서 해결책을 찾고 있습니다. typedef struct { char* name; int age; int lefthanded; People* friends; } Person; typedef struct { int count; int max; Person* data; } People; 답은 선언과 정의의 차이에 있습니다.같은 단계에서 선언하고 정의하려고 합니다(typeef를 통해 새 유형을 정의하는 경우).컴파일러가 당신이 말하는 것을 미리 알 수 있도록 당신은 이것들을 다른 단계로 나눌 필요가 있습니다. typedef struct Perso..

programing 2023.08.01

임시 정의 정보

임시 정의 정보 잠정적 정의에 관한 책을 읽었는데, 임시 정의는 스토리지 클래스 지정자와 이니셜라이저가 없는 외부 데이터 선언입니다.변환 단위의 끝에 도달했지만 식별자에 대한 이니셜라이저와 함께 정의가 나타나지 않은 경우 임시 정의가 전체 정의가 됩니다. 위의 진술이 의미하는 바를 설명해 주시기 바랍니다.또한 선언과 정의의 차이점은 무엇입니까?저는 이것 때문에 헷갈렸어요. :( 그리고 이 프로그램은 왜 오류를 내지 않나요: #include int a; //Tentative definition int a; //similarly this declaration too. int main() //not getting any error with this code why its so? { printf("hi"); }..

programing 2023.07.22

C 조건부 연산자('?')(두 번째 매개 변수가 비어 있음)

C 조건부 연산자('?')(두 번째 매개 변수가 비어 있음) 이 질문에는 이미 다음과 같은 답이 있습니다. 하나의 식을 비워둘 때의 3항 조건부 연산자 동작 (2개 답변) 마감됨8년 전에. 일반적으로 '?' 연산자는 다음 형식으로 사용됩니다. A ? B : C 그러나 B = A 다음과 같은 약어를 본 경우 A ? : C 이것은 놀랍게도 효과가 있습니다.두 번째 매개 변수를 (스타일에 따라) 그대로 두는 것이 좋을까요, 아니면 특정 컴파일러가 이를 처리하지 못할 가능성이 있을까요?C 언어에서는 허용되지 않지만(제가 알기로는) gcc와 같은 컴파일러는 바로 가기 a?:c를 확장자로 가지고 있습니다. a?:c와 같은 의미입니다.a?a:c.그것의 agcc의 내선 번호. 생략된 피연산자가 있는 조건 x ? : y..

programing 2023.07.07

C++ 프로그램 내에 C 헤더 포함

C++ 프로그램 내에 C 헤더 포함 저는 C++ 프로그램(.cpp)을 가지고 있는데, stdio.h, conio.h, stdlib.h, graphics.h, devices.h 등과 같은 C 헤더 파일 내부에 있는 일부 기능을 사용하고 싶습니다. 다음과 같이 cpp 파일에 stdio.h 라이브러리를 포함할 수 있습니다.#include 다른 라이브러리 파일은 어떻게 포함합니까? graphics.h 라이브러리는 어떻게 추가합니까? Microsoft Visual Studio 6.0 Enterprise Edition과 Turbo C++ 3.0을 사용하고 있습니다.C 표준 C 헤더 목록(stdio, stdlib, assert 등)의 경우 c를 앞에 추가하고 .h를 제거합니다. 예를 들어 stdio.h가 cstdio..

programing 2023.07.07

C에서 포인터 유형 간의 캐스팅이 정의되지 않은 동작은 언제입니까?

C에서 포인터 유형 간의 캐스팅이 정의되지 않은 동작은 언제입니까? C의 신입으로서, 저는 포인터를 던지는 것이 실제로 언제가 괜찮은지 혼란스럽습니다. 제가 알기로는, 당신은 거의 모든 포인터 타입을 다른 타입으로 캐스팅할 수 있고, 컴파일러는 당신이 그것을 할 수 있도록 해줄 것입니다.예: int a = 5; int* intPtr = &a; char* charPtr = (char*) intPtr; 그러나 일반적으로 정의되지 않은 동작이 발생합니다(많은 플랫폼에서 작동하기는 하지만).그러나 다음과 같은 예외가 있습니다. 당신은 여기저기 캐스팅할 수 있습니다.void* 당신은 여기저기 캐스팅할 수 있습니다.char* (적어도 코드에서 본 적은 있어요...) 그렇다면 C에서 정의되지 않은 동작이 포인터 유형..

programing 2023.06.22

무엇이 C에서 더 나은 상수, 매크로 또는 열거를 만들 수 있습니까?

무엇이 C에서 더 나은 상수, 매크로 또는 열거를 만들 수 있습니까? 매크로나 열거형을 언제 사용해야 할지 혼란스럽습니다.두 가지 모두 상수로 사용할 수 있지만, 두 가지의 차이점은 무엇이며 두 가지 모두의 장점은 무엇입니까?컴파일러 수준과 관련이 있습니까?가독성 측면에서 열거형은 관련 값이 함께 그룹화되어 있기 때문에 매크로보다 더 나은 상수를 만듭니다. 외에 게가다.enum에서는 새 유형을 정의하므로 프로그램의 판독기에서 해당 매개 변수로 전달할 수 있는 항목을 쉽게 파악할 수 있습니다. 비교하다 #define UNKNOWN 0 #define SUNDAY 1 #define MONDAY 2 #define TUESDAY 3 ... #define SATURDAY 7 로. typedef enum { UNKN..

programing 2023.06.17

C: 부호 없는 피연산자에 대한 일항 빼기 연산자 동작

C: 부호 없는 피연산자에 대한 일항 빼기 연산자 동작 부호 없는 피연산자가 있는 단항 빼기 연산자의 동작을 완전히 정의하는 C 표준의 관련 부분을 찾을 수 없는 것 같습니다. C C은 5 2003에 있습니다. C++ (네, C++, 몇은참고에줄표만다준말니합같년이다음서과은) 5.3.1c7에 나와 .The negative of an unsigned quantity is computed by subtracting its value from 2^n, where n is the number of bits in the promoted operand. 그러나 1999 C 표준은 그러한 명시적인 진술을 포함하지 않으며 6.5.3.3c1,3 또는 6.5c4에서 단항 행동을 명확하게 정의하지 않습니다.후자에는 다음과 같..

programing 2023.06.12
반응형