user71071: For example constant of MSBFIRST, It used to as input in SPI.setBitOrder(MSBFIRST). But sadly i don't know the type data of MSBFIRST. This is applied to like SPI_MODE0 and other.

user10794: From SPI.h:
#ifndef LSBFIRST
#define LSBFIRST 0
#endif
#ifndef MSBFIRST
#define MSBFIRST 1
#endif

As you can see, there is no type. The compiler merely substitutes literally "1" for "MSBFIRST". So your code would read, after pre-processing:
 SPI.setBitOrder(1)

To know exactly what type "1" is (I'm not sure why you need to know) then you would look up "C++ integer promotion". In other words, how are literal integers handled by the C++ compiler.

From a comment:

In which case it's better to look at the desired type of the destination function not the type of the macro or const.

Quite right. If you look further into the SPI.h file you see this:
  // This function is deprecated.  New applications should use
  // beginTransaction() to configure SPI settings.
  inline static void setBitOrder(uint8_t bitOrder) {

So, ignoring what type MSBFIRST is, you can see that the function expects uint8_t.

71071: <p>For example constant of <code>MSBFIRST</code>, It used to as input in <code>SPI.setBitOrder(MSBFIRST)</code>. But sadly i don't know the type data of <code>MSBFIRST</code>. This is applied to like <code>SPI_MODE0</code> and other.</p>
 10794: <p>From SPI.h:</p>
<pre><code>#ifndef LSBFIRST
#define LSBFIRST 0
#endif
#ifndef MSBFIRST
#define MSBFIRST 1
#endif
</code></pre>
<p>As you can see, there is no type. The compiler merely substitutes literally &quot;1&quot; for &quot;MSBFIRST&quot;. So your code would read, after pre-processing:</p>
<pre><code> SPI.setBitOrder(1)
</code></pre>
<p>To know exactly what type &quot;1&quot; is (I'm not sure why you need to know) then you would look up &quot;C++ integer promotion&quot;. In other words, how are literal integers handled by the C++ compiler.</p>
<hr />
<p>From a comment:</p>
<blockquote>
<p>In which case it's better to look at the desired type of the destination function not the type of the macro or const.</p>
</blockquote>
<p>Quite right. If you look further into the SPI.h file you see this:</p>
<pre><code>  // This function is deprecated.  New applications should use
  // beginTransaction() to configure SPI settings.
  inline static void setBitOrder(uint8_t bitOrder) {
</code></pre>
<p>So, ignoring what type MSBFIRST is, you can see that the function expects uint8_t.</p>
