여기 복합 리터럴 포인터를 초기화 한 포인터를 초기화 그리 일반적인 방법이다. #include <stdio.h>
int main(void)
{
int *p = (int[10]){[1]=1};
printf("%d\n", p[1]);
}
출력 : 1
이 프로그램은 컴파일 및 G에서 잘 실행 ++ 컴파일러. 그래서, 는 복합 리터럴
고려하면 this 토론. 다음 코드를 struct ParameterX {
QString name;
double max;
};
list << (Database::ParameterX){"id_raw_tb", 100000};
, QList<Database::ParameterX> list;
및을하지만, Qt는 창조주 3.3.0 나 제
저는 C에 대해 처음 접했고 단지 Compound Literals를 발견했을 뿐이므로 제 질문이 정확하지 않으면 제게 올바른 말을하십시오. 구조체가 있습니다. typedef struct
{
int someVal;
} foo;
이제이 내용을 다음으로 초기화 할 수 있음을 이해합니다. int main()
{
foo thisFoo =
나는이 구조체는 (color.h에) 이렇게 정의했다 : hsv hsvCol = {i/255.0, 1, 1};
rgb col = hsv2rgb(hsvCol);
난 그냥 내부의 변수 hsvCol을 만들 수 있도록하려면 : typedef struct rgb {
uint8_t r, g, b;
} rgb;
typedef struct hsv {
내가 이해 한 바에 따르면, 변수 a의 주소를 int ffx1에 전달하려고합니다. 그 다음이 라인은 정확히 p = (int[2]){*p};을 의미합니까? int ffx1(int * p) 함께 int ffx1(int * p)
{
p = (int[2]){*p};
return(p[1]);
}
int main()
{
int a
이의 내가 구조체 있다고 가정 해 봅시다 내 프로그램, 오류로 끝납니다 : struct location my_loc = { 2, 3 };
if (my_loc == INVALID_LOCATION)
{
return false;
}
이 컴파일되지 않습니다. 그런 방법으로 복합 리터럴을 사용하는 것이 합법적이지 않습니까? Invalid opera
함수에 배열을 보내려고하면 오류가 발생합니다. 이 내 minunit 테스트 프로그램입니다 : #include "minunit.h"
#include "calc.h"
#include <stdio.h>
int tests_run = 0;
static char * test_Repetitve() {
mu_assert("error in test_Re
저는 구조체의 배열에 대한 포인터와 그 배열의 크기에 대한 두 멤버를 포함하는 구조체를 정적으로 할당하려고합니다. 나는 순서대로 문자 배열과 포인터를 초기화하고 싶습니다 #define ARRAY_SIZE(x) (sizeof((x))/sizeof((x)[0]))
struct conf_element {
char *key;
enum co
작은 C 프로그램을 작성했습니다. 이 코드는 GCC 4.8.5 20150623 (Red Hat 4.8.5-4)에서 -std=c99으로 컴파일되었지만 경고 메시지를 보냈습니다. 나는 그 경고를 다룰 수 없으며, 나는 그것이 무엇이 잘못되었는지도 모른다. 코드는 여기에 있습니다 : #include <stdio.h>
#define COLS 4
int SumO