Bahasa C
Dalam tutorial ini, kita akan belajar tentang Preprocessor Directive, directive yang tersedia dalam C#, dan kapan, mengapa, dan bagaimana penggunaannya.
Seperti namanya, arahan preprocessor adalah blok pernyataan yang diproses sebelum kompilasi yang sebenarnya dimulai. C# preprocessor directives adalah perintah untuk compiler yang mempengaruhi proses kompilasi.
Perintah ini menentukan bagian kode mana yang akan dikompilasi atau bagaimana menangani kesalahan dan peringatan tertentu.
C# preprocessor directive dimulai dengan # (hash)
simbol dan semua arahan preprocessor bertahan selama satu baris. Direktif praprosesor diakhiri oleh new line
daripada semicolon
.
Direktif preprocessor yang tersedia di C# adalah:
Petunjuk Praprosesor | Deskripsi | Sintaks |
---|---|---|
#if | Memeriksa apakah ekspresi praprosesor benar atau tidak | #if preprocessor-expression code to compile #endif |
#elif | Digunakan bersama dengan #if untuk memeriksa beberapa ekspresi praprosesor | #if preprocessor-expression-1 code to compile #elif preprocessor-expression-2 code to compile #endif |
#else | Digunakan bersama dengan #if untuk membuat direktif kondisional majemuk. | #if preprocessor-expression code to compile #elif code to compile #endif |
#endif | Digunakan bersama dengan #if untuk menunjukkan akhir dari direktif bersyarat | #if preprocessor-expression code to compile #endif |
#define | Digunakan untuk mendefinisikan simbol | #define SYMBOL |
#undef | Digunakan untuk tidak mendefinisikan simbol | #undef SYMBOL |
#warning | Memungkinkan kami untuk menghasilkan peringatan level 1 dari kode kami | #warning warning-message |
#error | Memungkinkan kami untuk menghasilkan kesalahan dari kode kami | #error error-message |
#line | Memungkinkan kami untuk mengubah nomor baris dan nama file kompilator untuk menampilkan kesalahan dan peringatan | #line line-number file-name |
#region | Memungkinkan kami untuk membuat wilayah yang dapat diperluas atau diciutkan saat menggunakan Editor Kode Visual Studio | #region region-description codes #endregion |
#endregion | Menunjukkan akhir suatu wilayah | #region region-description codes #endregion |
#pragma | Memberikan instruksi khusus kepada kompiler untuk kompilasi file tempat file tersebut muncul. | #pragma pragma-name pragma-arguments |
#define
direktif memungkinkan kita untuk mendefinisikan simbol.#if
direktif akan bernilai benar.#define SYMBOL
#define TESTINGDi sini, PENGUJIAN adalah simbol.
#undef
direktif memungkinkan kita untuk tidak mendefinisikan simbol.#if
direktif akan bernilai false.#undef SYMBOL
#undef TESTINGDi sini, PENGUJIAN adalah simbol.
#if
direktif digunakan untuk menguji ekspresi praprosesor.&&
(DAN), ||
(ATAU), !
(TIDAK).#if
direktif diikuti oleh #endif
arahan.#if
direktif dikompilasi hanya jika ekspresi diuji dengan #if
bernilai benar.#if preprocessor-expression code to compile< #endif
#if TESTING Console.WriteLine("Currently Testing"); #endif
#define CSHARP
using System;
namespace Directive
{
class ConditionalDirective
{
public static void Main(string[] args)
{
#if (CSHARP)
Console.WriteLine("CSHARP is defined");
#endif
}
}
}
Saat kita menjalankan program, outputnya adalah:
CSHARP is defined
Pada program di atas, CSHARP
simbol didefinisikan menggunakan #define
arahan di awal program. Di dalam Main()
metode, #if
direktif digunakan untuk menguji apakah CSHARP
benar atau tidak. Blok kode di dalam #if
direktif dikompilasi hanya jika CSHARP
didefinisikan.
#elif
direktif digunakan bersama dengan direktif #if yang memungkinkan kita membuat direktif kondisional majemuk.#elif
direktif dikompilasi hanya jika ekspresi diuji dengan #elif
bernilai benar.#if preprocessor-expression-1 code to compile #elif preprocessor-expression-2 code-to-compile #endif
#if TESTING Console.WriteLine("Currently Testing"); #elif TRAINING Console.WriteLine("Currently Training"); #endif
#else
direktif digunakan bersama dengan #if
arahan.#if
sebelumnya dan #elif
(jika ada) direktif benar, kode di dalam #else
direktif akan dikompilasi.#if preprocessor-expression-1 code to compile #elif preprocessor-expression-2 code-to-compile #else code-to-compile #endif
#if TESTING Console.WriteLine("Currently Testing"); #elif TRAINING Console.WriteLine("Currently Training"); #else Console.WriteLine("Neither Testing nor Training"); #endif
#endif
direktif digunakan bersama dengan #if
direktif untuk menunjukkan akhir dari #if
arahan.#if preprocessor-expression-1 code to compile #endif
#if TESTING Console.WriteLine("Currently Testing"); #endif
#define CSHARP
#undef PYTHON
using System;
namespace Directive
{
class ConditionalDirective
{
static void Main(string[] args)
{
#if (CSHARP && PYTHON)
Console.WriteLine("CSHARP and PYTHON are defined");
#elif (CSHARP && !PYTHON)
Console.WriteLine("CSHARP is defined, PYTHON is undefined");
#elif (!CSHARP && PYTHON)
Console.WriteLine("PYTHON is defined, CSHARP is undefined");
#else
Console.WriteLine("CSHARP and PYTHON are undefined");
#endif
}
}
}
Saat kita menjalankan program, outputnya adalah:
CSHARP is defined, PYTHON is undefined
Dalam contoh ini, kita dapat melihat penggunaan #elif
dan #else
pengarahan. Arahan ini digunakan ketika ada beberapa kondisi yang akan diuji. Selain itu, simbol dapat digabungkan menggunakan operator logika untuk membentuk ekspresi praprosesor.
#warning
direktif memungkinkan kami untuk menghasilkan peringatan tingkat satu yang ditentukan pengguna dari kode kami.#warning warning-message
#warning This is a warning message
using System;
namespace Directives
{
class WarningDirective
{
public static void Main(string[] args)
{
#if (!CSHARP)
#warning CSHARP is undefined
#endif
Console.WriteLine("#warning directive example");
}
}
}
Saat kita menjalankan program, outputnya adalah:
Program.cs(10,26): warning CS1030: #warning: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj] #warning directive example
Setelah menjalankan program di atas, kita akan melihat output seperti di atas. Teks tersebut mewakili pesan peringatan. Di sini, kami membuat pesan peringatan yang ditentukan pengguna menggunakan #warning
arahan.
Perhatikan bahwa pernyataan setelah #warning
direktif juga dijalankan. Artinya #warning
direktif tidak menghentikan program tetapi hanya memberikan peringatan.
#error
direktif memungkinkan kami untuk menghasilkan kesalahan yang ditentukan pengguna dari kode kami.#error error-message
#error This is an error message
using System;
namespace Directive
{
class Error
{
public static void Main(string[] args)
{
#if (!CSHARP)
#error CSHARP is undefined
#endif
Console.WriteLine("#error directive example");
}
}
}
Saat kita menjalankan program, outputnya adalah:
Program.cs(10,24): error CS1029: #error: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj] The build failed. Please fix the build errors and run again.
Kita akan melihat beberapa kesalahan, mungkin seperti di atas. Di sini kami membuat kesalahan yang ditentukan pengguna.
Hal lain yang perlu diperhatikan di sini adalah program akan dihentikan dan baris #error directive example
tidak akan dicetak seperti di #warning
arahan.
#line
direktif memungkinkan kita untuk mengubah nomor baris dan nama file untuk kesalahan dan peringatan.#line line-number file-name
#line 50 "fakeprogram.cs"
using System;
namespace Directive
{
class Error
{
public static void Main(string[] args)
{
#line 200 "AnotherProgram.cs"
#warning Actual Warning generated by Program.cs on line 10
}
}
}
Saat kita menjalankan program, outputnya adalah:
AnotherProgram.cs(200,22): warning CS1030: #warning: 'Actual Warning generated by Program.cs on line 10' [/home/myuser/csh arp/directive-project/directive-project.csproj]
Kami telah menyimpan contoh di atas sebagai Program.cs
. Peringatan sebenarnya dibuat di line 10
oleh Program.cs
. Menggunakan #line
direktif, kami telah mengubah nomor baris menjadi 200
dan nama file menjadi AnotherProgram.cs
yang menghasilkan kesalahan.
#region
direktif memungkinkan kita untuk membuat wilayah yang dapat diperluas atau diciutkan saat menggunakan Editor Kode Visual Studio.#if
memblokir. Namun, sebuah #region
blok dapat dimasukkan dalam #if
blok dan #if
blok dapat tumpang tindih dengan #region
blokir.#endregion
direktif menunjukkan akhir dari #region
blokir.#region region-description codes #endregion
using System;
namespace Directive
{
class Region
{
public static void Main(string[] args)
{
#region Hello
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
#endregion
}
}
}
Saat kita menjalankan program, outputnya adalah:
Hello Hello Hello Hello Hello
#pragma
direktif digunakan untuk memberikan kompiler beberapa instruksi khusus untuk kompilasi file di mana ia muncul.#pragma
instruksi:#pragma warning
:Digunakan untuk menonaktifkan atau mengaktifkan peringatan#pragma checksum
:Ini menghasilkan checksum untuk file sumber yang akan digunakan untuk debugging.#pragma pragma-name pragma-arguments
#pragma warning disable
using System;
namespace Directive
{
class Error
{
public static void Main(string[] args)
{
#pragma warning disable
#warning This is a warning 1
#pragma warning restore
#warning This is a warning 2
}
}
}
Saat kita menjalankan program, outputnya adalah:
Program.cs(12,22): warning CS1030: #warning: 'This is a warning 2' [/home/myuser/csharp/directive-project/directive-project.csproj]
Kita dapat melihat bahwa hanya peringatan kedua ditampilkan pada layar keluaran.
Ini karena, awalnya kami menonaktifkan semua peringatan sebelum peringatan pertama dan memulihkannya hanya sebelum peringatan kedua. Inilah alasan mengapa peringatan pertama disembunyikan.
Kami juga dapat menonaktifkan peringatan khusus alih-alih semua peringatan.
Untuk mempelajari lebih lanjut tentang #pragma
, kunjungi #pragma (referensi C#).
Bahasa C
Saat artikel fitur “Penyebaran penyebaran derek” dicetak, Cerita Sampingan ini jauh berbeda, kebanyakan berbicara tentang seberapa banyak yang tidak kita ketahui tentang bagaimana derek menyebar. Dan kemudian saya menemukan sebuah artikel di buletin AZL NewsLIGHT #7:ITA berjudul “Proses penyebaran u
CW telah menulis tentang Lingrove dan produk Ekoanya berkali-kali, tetapi itu adalah termoset prepregs dan panel menggunakan serat rami dan resin bio-epoksi. Perusahaan kini telah meluncurkan Ekoa TP , menggunakan termoplastik berbasis lignin untuk skala industri pemrosesan cepat dan dapat didaur ul
Drone adalah kendaraan udara tak berawak, yaitu pesawat tanpa pilot di dalamnya. Mereka biasanya dikendalikan dari jarak jauh, namun drone otonom sedang dalam tahap pengembangan lanjutan. Asalnya adalah militer, meskipun, saat ini, mereka digunakan untuk tujuan rekreasi dan baru-baru ini untuk indu
Tentu Anda sudah tahu apa itu Industri 4.0 , manfaatnya , aplikasinya dan bagaimana hal itu cocok dengan Otomasi industri . Dalam postingan ini kami memberi tahu Anda bagaimana pekerja masa depan (dan masa kini), karena ia harus memiliki pengetahuan tentang teknologi 4.0 secara mendalam. Bagaimana