Я пишу некоторые похожие программы на C как часть проекта XCode. Поскольку эта новая программа должна демонстрировать немного отличную функциональность от той, что была на первой рабочей итерации, я подумал, что цели лучше всего использовать.
Итак, я попытался создать новую цель и сделал это так, как мне показалось, правильным путем поиска гугл как (в XCode). Но при компиляции я получаю слишком много ошибок.
Вот экран ошибок, которые я получаю:
Я вижу, что у него проблемы с загрузкой разных символов, поэтому я уверен, что это, вероятно, простая проблема, например, некоторые отсутствующие файлы. Но я не знал, что с Google, поэтому я надеюсь, что все в порядке, что я спрашиваю.
В связанной заметке кто-нибудь знает, почему моей первой версии программы, называемой main.c, не нужно было включать заголовочный файл, как это было выше?
Спасибо!
EDIT:
Вот код из новой цели, который практически идентичен до сих пор неизменной первой версии программы:
/*
* ScalarProduct.c
* Concurrency_Practical1
*
* Created by Chucky on 11/03/2012.
* Copyright 2012 __MyCompanyName__. All rights reserved.
*
*/
#include "ScalarProduct.h"
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
//the final answer
int finalScalarProd;
//random variable
int rand_seed=10;
int rand()
{
int n;
n = random()%11;
//printf("%d\n", n);
return(n);
}
void* getScalarProduct(void *arg)
{
//index for loop
int i;
//scalarProduct of 10 integers
int * scalarProd = (int *) arg;
//my two arrays
int list1[10];
int list2[10];
for (i=0; i<10; i++) {
list1[i] = rand();
list2[i] = rand();
*scalarProd += list1[i]*list2[i];
printf("%d:\t\t %d\t\t %d\t\t %d\t\t\n", i, list1[i], list2[i], list1[i]*list2[i]);
}
return((void*)scalarProd);
}
int main (int argc, const char * argv[]) {
// insert code here...
pthread_t t1, t2;
int sp1= 0, sp2 = 0;
printf("Index\t List1\t List2\t Product\n\n");
pthread_create( &t1, NULL, getScalarProduct, &sp1);
pthread_create( &t2, NULL, getScalarProduct, &sp2);
pthread_join( t1, NULL);
pthread_join( t2, NULL);
printf("\nScalar Products: %d %d\n", sp1, sp2);
finalScalarProd = sp1 + sp2;
printf("Result: %d\n", finalScalarProd);
return 0;
}