 |

|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 05 02, 17:54. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Programavimas » C kalba, apie header faila.
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
C kalba, apie header faila. |
Parašytas: 2013 10 15, 14:41 |
|
|
|
Labas
Iškilo klausima, gan praktiškas:)
Sakykime susikuriu savo biblioteka mano.h, ir joje yra #define kintamasis 0
ir kaip galėčiau kintamojo reikšme pakeisti iš main.c failo
pvz.
#include <.....>
#include "mano.h"
kintamasis=10
main()
{
}
Arba pavyzdžiui kaip galimą būtų pakeisti reikšme kintamajam esančiam header falie <mano.h>
Visiems dėkingas kas galėsit padėti. |
|
|
|
|
 |
C kalba, apie header faila. |
Parašytas: 2013 10 15, 16:54 |
|
|
|
viskas ciki, *.h faile ir rasomos public deklaracijos, be to su extern galima publikuoti hiden deklaracijas, jei tik nujauti kaip jos galejo buti deklaruotos.
tavo atveju problema kiltu nebent todel, kad bandai redeklaruoti anksciau deklaruota kintamaji. jei tai darytum f-jos/p-ros vuduje, tai atrodytu kaip priskyrimas, nes pries redeklaravima nenurodai jokio tipo. |
|
|
|
|
 |
 |
C kalba, apie header faila. |
Parašytas: 2013 10 15, 19:52 |
|
|
|
Na man tas čiki nesigauna.
main.c:
Kodas: |
#include <stdio.h>
#include <stdlib.h>
#include "hederTEST.h"
#define JO() (5)
int main()
{
daugina();
return 0;
}
|
hederTEST.h:
Kodas: |
#ifndef hederTEST_H_
#define hederTEST_H_
#ifndef JO()
#define JO() (1)
#endif
void daugina (void);
void printint(int con);
#endif |
hederTEST.c:
Kodas: |
void daugina (void)
{
int a =10;
printf("is funkcijos daugina konstanta a %i\n",a);
printf("Numatytas daugiklis %i\n Iveskite skaiciu",JO());
scanf("%i", &a);
printf("Ivestas skaicius yra %i\n",a);
a*=JO();
printf("gauname %i\n",a);
}
|
Kaip matome iš kodo aš bandau iš main lango kintamojo (šeip tai konstanta)
JO reikšme pakeisti į 5 ir perduoti į hederTest.c per .h faila.
Kai JO() () tai prieš main funkcija Galiu priskirti kita reikšme arba JO=5; taip pat kompiletorius nesispjaudo, bet daugiklio reikšmė palieka ta pati. Kai JO reikšme keičiu main funkcijoje tai ir kompiletoriui nepraeina.
kokiu minčių kas pasiūlys?  |
|
|
|
|
 |
 |
C kalba, apie header faila. |
Parašytas: 2013 10 16, 09:05 |
|
|
|
kadangi includas pirmiau deklaracijos main.c tai rezultate turetum JO() (1)
jei include hdrTEST.h padarytum po deklaracijos JO() (5), tai tai ir gautum. |
|
|
|
|
 |
C kalba, apie header faila. |
Parašytas: 2013 10 16, 12:25 |
|
|
|
nezinau kas tau negerai, bet man po DevC++ veikia 100%
Kodas: |
#ifndef hederTEST_H_
#define hederTEST_H_
//#ifndef JO
//#define JO() (1)
//#endif
extern int JO;
void daugina (void);
void printint(int con);
#endif |
Kodas: |
#include <stdio.h>
#include <stdlib.h>
#include "hederTEST.h"
int JO = 1;
void daugina (void)
{
int a = 10;
printf("is funkcijos daugina konstanta a %i\n",a);
printf("Numatytas daugiklis %i\n Iveskite skaiciu ", JO);
scanf("%i", &a);
printf("Ivestas skaicius yra %i\n",a);
a *= JO;
printf("gauname %i\n",a);
} |
Kodas: |
#include "hederTEST.h"
int main()
{
JO = 5;
daugina();
return 0;
} |
|
|
|
|
|
 |
C kalba, apie header faila. |
Parašytas: 2013 10 16, 12:28 |
|
|
|
su #define ten visokie bajeriai gali gautis del skirtingos kompiliavimo eigos kai kompiliuoji is kokios nors IDE ir makefile, cia lai tau paaiskina c++ profai, as tik megejas. |
|
|
|
|
 |
C kalba, apie header faila. |
Parašytas: 2013 10 16, 16:59 |
|
|
|
Labas,
1. Kad galėtum kintamąjį naudoti kitame faile, reik jį ten deklaruoti kaip išorinį raktiniu žodeliu: extern int kintamasis;
2. Direktyva #define galima apibrėžti konstantes (nekeičiama), arba MACRO inline funkcijas su parametru ar be jo.
Sėkmės. |
|
|
|
|
 |
C kalba, apie header faila. |
Parašytas: 2013 10 16, 19:45 |
|
|
|
Ačiū AlgisL su extern veikia jūsų pavyzdys. Extern keyword skirta C/C++ pirmą kartą girdžiu nors programavimų rimtai domiuosi apie porą mėnesiu. skaitomoj literatūroje kol kas nesusidūriau.
Mintis kintamojo reikšmę keisti per #define kilo per atmel studio. Kai su žaidžiau. pasirodo reikšmės į registus perduodamos per DDRx ir PORTx kurie heder faile yra tiesiog definicios. na jei ką dar sužinosiu pasidalinsiu, jei dar kas nors turite protingų minčių taip pat galit pasidalinti. o šiaip tai tikslas kaip ir pasiektas ir VV2 ką turėjai galvoje su parametru ar be jo? |
|
|
|
|
 |
 |
C kalba, apie header faila. |
Parašytas: 2013 10 17, 08:33 |
|
|
|
jis turejo uomenyje statini konstantos ar f-jos/p-ros aprasa per #define
toks aprasas turi privaluma, kad gali padaryti #undefine ir apsirasyti isnaujo, kai iprastai aprasytos konstantos ar proceduru pakeisti jau nera galimybes. yra override, bet turi skirtis parametru skaicius arba tipas. |
|
|
|
|
|
 |
Google paieška forume |
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
LEGO
Mänguköök,
mudelautod,
nukuvanker |
 |
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
 |
Football Training Kit
Football Training Equipment,
Football Skills,
Football Training |
|

|
 |